• 习题:循环结构(三)


    目录

    练习21:求100到1000之间的所有能被5和6整除的整数,每行显示5个

    练习22:求和:1/3+3/5+5/7+7/9+………..+97/99

    练习23:输出100以内的所有素数,每行显示5个;并求和。

     练习24:通过编程解决小和尚要挑几次水才可以把水缸挑满的问题

    提示:

    (1) 用整型变量water表示水缸里的水“int water = 15;”。

    (2)用整型变量l表示小和尚下山挑水的次数“int l = 0;”。 

    (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。

    (4) 套用while循环(或do-while循环)写出代码。

     练习25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)

     

    练习26:开发一个标题为“FlipFlop”的游戏应用程序。 

    它从1计数到100,遇到3的倍数就替换为单词“Flip”,5的倍数就替换为单词“Flop”, 既为3的倍数又为5的倍数则替换为单词“FlipFlop”。 

    练习27:生成13位条形码 Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码

      练习28:求两个整数的最大公约数和最小公倍数

    练习29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?

    练习30:用100元人民币兑换10元,5元,1元的纸币(每种都要有),计算有多少种兑换方案

    练习31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?


    练习21:求100到1000之间的所有能被5和6整除的整数,每行显示5个

    1. /*
    2. * 练习21:求1001000之间的所有能被56整除的整数,每行显示5
    3. */
    4. public static void main(String[] args) {
    5. int count = 0;
    6. for (int i = 100; i <= 1000; i++) {
    7. if (i % 5 == 0 && i % 6 == 0) {
    8. System.out.print(i + " ");
    9. count++;
    10. if (count % 5 == 0) {
    11. System.out.println();
    12. }
    13. }
    14. i++;
    15. }
    16. }

    练习22:求和:1/3+3/5+5/7+7/9+………..+97/99

    1. /*
    2. * 练习22:求和:1/3+3/5+5/7+7/9+………..+97/99
    3. */
    4. public static void main(String[] args) {
    5. double sum = 0;
    6. for (double i = 1; i <= 97; i += 2) {
    7. sum = sum + i / (i + 2);
    8. }
    9. System.out.println(sum);
    10. }
    1. /*
    2. * 练习22:求和:1/3+3/5+5/7+7/9+………..+97/99
    3. */
    4. public static void main(String[] args) {
    5. double sum = 0;
    6. //for循环中,可以写多个变量
    7. for(double i =1,j=3;i<=97&j<=99;i+=2,j+=2){
    8. sum+=(i/j);
    9. }
    10. System.out.println(sum);
    11. }

    练习23:输出100以内的所有素数,每行显示5个;并求和。

    1. /*
    2. * 练习23:输出100以内的所有素数,每行显示5个;并求和。
    3. *
    4. * (素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)
    5. */
    6. public static void main(String[] args) {
    7. int i, j;
    8. int count = 0;
    9. int sum = 0;
    10. for (i = 2; i <= 100; i++) {
    11. for (j = 2; j < i; j++) {
    12. if (i % j == 0)
    13. break;
    14. }
    15. if (j >= i) {// 也可以写成j==i
    16. System.out.print(i + " ");
    17. sum += i;
    18. count++;
    19. if (count % 5 == 0) {
    20. System.out.println();
    21. }
    22. }
    23. }
    24. System.out.println("100以内的所有素数之和为:" + sum);
    25. }

     练习24:通过编程解决小和尚要挑几次水才可以把水缸挑满的问题

    提示:

    (1) 用整型变量water表示水缸里的水“int water = 15;”。

    (2)用整型变量l表示小和尚下山挑水的次数“int l = 0;”。 

    (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。

    (4) 套用while循环(或do-while循环)写出代码。

    1. /*
    2. * 练习24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
    3. * 提示:
    4. * (1) 用整型变量water表示水缸里的水“int water = 15;”。
    5. * (2)用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
    6. * (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
    7. * (4) 套用while循环(或do-while循环)写出代码。
    8. *
    9. */
    10. public static void main(String[] args) {
    11. int water = 15;
    12. int l = 0;
    13. while(water<50){
    14. l++;
    15. water+=5;
    16. }
    17. System.out.println("小和尚要挑"+l+"次水才可以把水缸挑满");
    18. }
    1. /*
    2. * 练习24:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
    3. * 提示:
    4. * (1) 用整型变量water表示水缸里的水“int water = 15;”。
    5. * (2)用整型变量l表示小和尚下山挑水的次数“int l = 0;”。
    6. * (3) 分析循环条件(水少于50升),循环操作(水增加5升,挑水次数增加1)。
    7. * (4) 套用while循环(或do-while循环)写出代码。
    8. *
    9. */
    10. public static void main(String[] args) {
    11. int water = 15;
    12. int l = 0;
    13. do{
    14. l++;
    15. water+=5;
    16. }while(water<50);
    17. System.out.println("小和尚要挑"+l+"次水才可以把水缸挑满");
    18. }

     练习25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)

     

    1. /*
    2. * 练习25:李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)
    3. * 提示:采用逆向思维分析问题。
    4. *
    5. */
    6. public static void main(String[] args) {
    7. //壶里的酒
    8. double alcohol = 0;
    9. for(int i =0;i<5;i++){
    10. alcohol+=1;
    11. alcohol/=2;
    12. }
    13. System.out.println("李白壶中原有"+alcohol+"斗酒");
    14. }

    练习26:开发一个标题为“FlipFlop”的游戏应用程序。 

    它从1计数到100,遇到3的倍数就替换为单词“Flip”,5的倍数就替换为单词“Flop”, 既为3的倍数又为5的倍数则替换为单词“FlipFlop”。 

    1. /*
    2. * 练习26:开发一个标题为“FlipFlop”的游戏应用程序。
    3. * 它从1计数到100
    4. * 遇到3的倍数就替换为单词“Flip”,
    5. * 5的倍数就替换为单词“Flop”,
    6. * 既为3的倍数又为5的倍数则替换为单词“FlipFlop”。
    7. */
    8. public static void main(String[] args) {
    9. for (int i = 1; i <= 100; i++) {
    10. if (i % 3 == 0 & i % 5 == 0) {
    11. System.out.println("FlipFlop");
    12. } else if (i % 3 == 0) {
    13. System.out.println("Flip");
    14. } else if (i % 5 == 0) {
    15. System.out.println("Flop");
    16. } else {
    17. System.out.println(i);
    18. }
    19. }
    20. }

    练习27:生成13位条形码 Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码

    1. /*
    2. * 练习27:生成13位条形码 Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。 例如:690123456789
    3. * 计算其校验码的过程为:
    4. * @前十二位的奇数位和6+0+2+4+6+8=26
    5. * @前十二位的偶数位和9+1+3+5+7+9=34
    6. * @将奇数和与偶数和的三倍相加26+34*3=128
    7. * @取结果的个位数:128的个位数为8
    8. * @用10减去这个个位数10-8=2 所以校验码为2
    9. * (注:如果取结果的个位数为0,那么校验码不是为1010-0=10),而是0
    10. * 实现方法ean13()计算验证码,输入12位条码,返回带验证码的条码。
    11. * 例:输入:692223361219输出:6922233612192
    12. */
    13. public static void main(String[] args) {
    14. StringBuffer code;
    15. int check;
    16. System.out.print("请输入Ean-13条形码的前十二位:");
    17. Scanner sc = new Scanner(System.in);
    18. code =new StringBuffer(sc.nextLine());
    19. //调用方法获得校验码
    20. check = ean13(code);
    21. //在条码后面追加校验码
    22. code.append(check);
    23. System.out.println("正确的条形码是:"+code);
    24. sc.close();
    25. }
    26. //定义方法获得校验码
    27. public static int ean13(StringBuffer code){
    28. int c1=0;
    29. int c2=0;
    30. int sum=0;
    31. int check;
    32. for(int i=0;i<12;i+=2){
    33. //奇数位数字求和
    34. c1+=(code.charAt(i)-'0');//数字字符-数字字符=整数
    35. //偶数位数字求和
    36. c2+=(code.charAt(i+1)-'0');
    37. }
    38. sum=c1+c2*3;
    39. check=(10-sum%10)%10;
    40. //返回的值是校验码
    41. return check;
    42. }

      练习28:求两个整数的最大公约数和最小公倍数

    1. /*
    2. * 练习28:求两个整数的最大公约数和最小公倍数
    3. */
    4. public static void main(String[] args) {
    5. Scanner sc = new Scanner(System.in);
    6. System.out.println("请输入第一个整数:");
    7. int num1 = sc.nextInt();
    8. System.out.println("请输入第二个整数:");
    9. int num2 = sc.nextInt();
    10. int max;
    11. int min;
    12. if (num1 > num2) {
    13. max = num1;
    14. min = num2;
    15. } else {
    16. max = num2;
    17. min = num1;
    18. }
    19. // 最大公约数
    20. for (int i = min; i >= 1; i--) {
    21. if (num1 % i == 0 && num2 % i == 0) {
    22. System.out.println("最大公约数:" + i);
    23. break;
    24. }
    25. }
    26. // 最小公倍数
    27. for (int i = max;; i++) {
    28. if (i % num1 == 0 && i % num2 == 0) {
    29. System.out.println("最小公倍数:" + i);
    30. break;
    31. }
    32. }
    33. sc.close();
    34. }

    练习29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?

    1. /*
    2. * 练习29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
    3. */
    4. public static void main(String[] args) {
    5. int yiYuan = 1;
    6. int wuYuan = 5;
    7. int shiYuan = 10;
    8. int count = 0;
    9. for (int i = 0; i <= 100; i++) {
    10. for (int j = 0; j <= 20; j++) {
    11. for (int k = 0; k <= 10; k++) {
    12. if (i * yiYuan + j * wuYuan + k * shiYuan == 100) {
    13. count++;
    14. System.out.println(i + "张1元," + j + "张5元," + k + "张10元");
    15. }
    16. }
    17. }
    18. }
    19. System.out.println("一共有" + count + "种兑换方法");
    20. }

    练习30:用100元人民币兑换10元,5元,1元的纸币(每种都要有),计算有多少种兑换方案

    1. /*
    2. * 练习30:用100元人民币兑换10元,5元,1元的纸币(每种都要有),计算有多少种兑换方案
    3. */
    4. public static void main(String[] args) {
    5. int yiYuan = 1;
    6. int wuYuan = 5;
    7. int shiYuan = 10;
    8. int count = 0;
    9. for (int i = 1; i <= 100; i++) {
    10. for (int j = 1; j <= 20; j++) {
    11. for (int k = 1; k <= 10; k++) {
    12. if (i * yiYuan + j * wuYuan + k * shiYuan == 100) {
    13. count++;
    14. System.out.println(i + "张1元," + j + "张5元," + k + "张10元");
    15. }
    16. }
    17. }
    18. }
    19. System.out.println("一共有" + count + "种兑换方法");
    20. }

    练习31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?

    1. /*
    2. * 练习31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
    3. */
    4. public static void main(String[] args) {
    5. int drink = 50; // 饮料总数
    6. int count = 0; // 兑换次数
    7. while (true) {
    8. drink -= 3; //3
    9. drink++; // 兑换1
    10. count++; // 兑换次数+1
    11. if (drink < 3) {
    12. System.out.println("共喝了" + (50 + count) + "瓶");
    13. break;
    14. }
    15. }
    16. }
  • 相关阅读:
    apache shiro安全框架反序列化漏洞
    Python:实现recursive quick sort递归快速排序算法(附完整源码)
    hdoj 3549 Flow Problem(最大网络流)
    虚拟机桥接模式无法联网
    Panorama SCADA平台的警报通知功能配置详解
    【云计算】云数据中心网络(七):负载均衡
    【实验分享】CCIE—BGP反射器实验
    启明欣欣STM32开发板闪烁LED实验
    RabbitMQ应用场景
    数据结构--二叉树-堆(1)
  • 原文地址:https://blog.csdn.net/qq_51810428/article/details/126392663