循环练习题及答案(8页).doc
-循环练习题及答案-第 7 页1,任意输入一个整数(小于10位),求它的位数import java.util.Scanner;public class BitNum public static void main(String args)Scanner input = new Scanner(System.in);int count = 0;System.out.print("请输入一个整数(小于10位):");int num = input.nextInt();if(num >= 0 && num <= 999999999)while(num != 0)count+;num /= 10;System.out.println("它是个" + count + "位的数。");elseSystem.out.println("输入有误!");2,本金10000元存入银行,年利率是千分之三,每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少?public class Principal public static void main(Stringargs) double money = 10000; for(int i = 0; i < 5; i+) money *= 1+0.003; System.out.println("5年后,获得的本金是" +(int) money + "元。");3,计算1000以内所有不能被7整除的整数之和。public class NotDiviBySevenSum public static void main(Stringargs) int sum = 0; for (int i = 1; i < 1000; i+) /1000以内的整数 if (i % 7 != 0) /对7取余 sum += i; /余数不为0 则相加/所有不能被7整除的整数的和 System.out.println("1000以内所有不能被7整除的整数之和为:" + sum); 4,编写一个游戏级别评分器,循环录入每一局(共10局)的游戏得分,显示输出游戏级别。import java.util.Scanner;public class DigitalExchange public static void main(String args)Scanner input = new Scanner(System.in);int count = 0;double score = 0;for (int i = 1; i <= 10; i+)System.out.print("请输入" + i + "局的游戏得分:"); score = input.nextDouble();if(score >= 80)count+;if (count >= 9)System.out.println("一级");else if (count >= 6)System.out.println("二级");elseSystem.out.println("三级");5,有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?分析:兔子的规律为数列,1,1,2,3,5,8,13,21public class Fobonacci1 public static void main(Stringargs) int f1 = 1; int f2 = 1; int sum = 0; for(int i = 3; i <= 12; i+) sum = f1 + f2; f1 = f2; f2 = sum; System.out.println("一对兔子一年内(12个月)能繁殖成" + sum + "对。");6,斐波那契数列的第1和第2个数分别为1和1,从第三个数开始,每个数等于其前两个数之和(1,1,2,3,5,8,13.).编写一个程序输出斐波那契数列中的前20个数,要求每行输出5个数。public class Fobonacci2 public static void main(Stringargs) int f1 = 1; int f2 = 1; System.out.println("斐波那契数列中的前20个数为:"); System.out.print(f1 + "t" + f2 + "t"); for(int i = 3; i <= 20; i+) int f3 = f1 + f2; f1 = f2; f2 = f3; System.out.print(f3 + "t"); if(i % 5 = 0) System.out.println();7,计算出1100之间所有不能被3整除的整数的和大于(或等于)2000的数字。public class ForAnInteger public static void main(Stringargs) int item = 0;for(int i = 1; i <= 100; i+)if(i % 3 =0)continue; item += i;if(item >= 2000)System.out.println("那个数是:" + i); break;8,求s=a+aa+aaa+aaaa+.+aa.a的值,其中a是一个数字。例如2+22+222+2222,a的值和加数个数n均从键盘获取。import java.util.Scanner;public class Test8 public static void main(String args) Scanner input = new Scanner(System.in);long a , b = 0, sum = 0;System.out.print("输入数字a的值: ");a = input.nextLong();System.out.print("输入相加的项数:");int n = input.nextInt();for(int i = 0; i < n; i+) b = b + a;sum = sum + b;a = a * 10;System.out.print(b);if(i != n - 1)System.out.print(" + ");elseSystem.out.print(" = ");System.out.println(sum);9,编写一个程序,最多接受10个数字,并求出其中所有正数的和,用户可以通过输入999终止程序,统计用户输入的正数的个数,并显示这些正数的和。(提示;continue)import java.util.Scanner;public class Test8 public static void main(String args) Scanner input = new Scanner(System.in);int count = 0; /正数个数int sum = 0; /正数的和int num = 0; /输入的数字int i = 0;do System.out.print("请输入第" + (i + 1) + "个数:");num = input.nextInt();if (num > 0 && num != 999) count+;sum += num;i+; while (i < 10 && num != 999);System.out.println("你输入的数字中正数个数为:" + count + ",正数的和为:" + sum);10.使用do-while循环:输出询问“我爱你,嫁给我吧?”,选择“你喜欢我吗?(y/n):",如果输入为y则打印”我们形影不离“,若输入为n,则继续询问import java.util.Scanner;public class LoveChoice public static void main(String args) Scanner input = new Scanner(System.in);String choice = ""do System.out.println("我爱你,嫁给我吧?");System.out.print("你喜欢我吗?(y/n):");choice = input.next();if(choice.equals("y")System.out.println("我们形影不离"); while (!choice.equals("y");11, 具有4行等腰三角形(用循环来做)public class AnIsoscelesTriangle public static void main(String args)for(int i = 1; i <= 4; i+)for(int j = 1; j <= 4 - i; j+)System.out.print(" ");for(int k = 1; k <= 2 * i - 1; k+)System.out.print("*");System.out.println();12, ,从控制台接收两个数字,利用变量将这两个数字进行互换,并输出.import java.util.Scanner;public class DigitalExchange public static void main(String args)Scanner input = new Scanner(System.in);System.out.print("请输入第1个数a:");int a = input.nextInt();System.out.print("请输入第2个数b:");int b = input.nextInt();System.out.println("交换前,a = " + a + ",b = " + b);int temp = a;a = b;b = temp;System.out.println("交换后,a = " + a + ",b = " + b);13, 实现一个数字加密器,加密规则是:加密结果 = (整数*10+5)/2 + 3.14159 加密结果仍为一整数(数字从控制台输入)import java.util.Scanner;public class DigitalEncryption public static void main(String args)Scanner input = new Scanner(System.in);System.out.print("请输入您要加密的数:");int num = input.nextInt();System.out.println("加密前:" + num);int encryption = (int)(num * 10 + 5) / 2 + 3.14159);System.out.println("加密后:" + encryption);14, 从控制台输入一个正整数,并进行反转。import java.util.Scanner;public class IntReversal public static void main(String args)Scanner input = new Scanner(System.in);System.out.print("请输入一个正整数:");int num = input.nextInt();if(num > 0)System.out.println("反转前:" + num);System.out.print("反转后:");while(num != 0)int temp = num % 10;System.out.print(temp);num /= 10;elseSystem.out.println("您输入的不是一个正整数!");15, 循环输入所购商品的编号和数量,系统自动计算购买每种商品的价钱,并累计中金额。import java.util.Scanner;public class PriceLookup public static void main(String args)Scanner input = new Scanner(System.in);String name = ""/商品名称double price = 0.0;/商品价格int goodsNo = 0;/商品编号int amount = 0;/购买数量double discount = 0.8;/折扣比例double total = 0.0;/商品总价double money = 0.0;/应付金额System.out.println("MyShopping 管理系统 > 购物结算n");/商品清单System.out.println("*System.out.println("请选择购买的商品编号:");System.out.println("1.T 恤tt2.网球鞋tt3.网球拍");System.out.println("*n");String answer = "y"/标识是否继续while("y".equals(answer)System.out.print("请输入商品编号:");goodsNo = input.nextInt();System.out.print("请输入购买数量:");amount = input.nextInt();switch(goodsNo)case 1:name = "T 恤"price = 245.0;break;case 2:name = "网球鞋"price = 570.0;break;case 3:name = "网球拍"price =320.0;break;total = price * amount;/合计System.out.println(name + "¥" + price + "t" + "数量" + amount + "t合计¥" + total);System.out.println("是否继续(y/n)");answer = input.next();System.out.println();money += total;/未打折扣的应付金额System.out.println("折扣:" + discount);System.out.println("应付金额:" + (money * discount);System.out.print("实付金额:");double payment = input.nextDouble();/实付金额System.out.println("找钱:" + (payment - money * discount);16,利用循环,实现下面数据的输出结果。1-3+5-7+-99+101public class Sum public static void main(String args)int sum = 0;int count = 1;for(int i = 1; i <= 101; i += 2)if(count % 2 != 0)sum += i;System.out.print(i);elsesum -= i;System.out.print("-" + i + "+");count+;System.out.println("=" + sum);