习题:循环结构(三)

目录

练习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个



	/*
	 * 练习21:求100到1000之间的所有能被5和6整除的整数,每行显示5个
	 */
	public static void main(String[] args) {
		int count = 0;
		for (int i = 100; i <= 1000; i++) {
			if (i % 5 == 0 && i % 6 == 0) {
				System.out.print(i + " ");
				count++;
				if (count % 5 == 0) {
					System.out.println();
				}
			}

			i++;
		}

	}

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



	/*
	 * 练习22:求和:1/3+3/5+5/7+7/9+………..+97/99
	 */
	public static void main(String[] args) {
		double sum = 0;
		for (double i = 1; i <= 97; i += 2) {
			sum = sum + i / (i + 2);
		}
		System.out.println(sum);

	}



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

	}

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



	/*
	 * 练习23:输出100以内的所有素数,每行显示5个;并求和。
	 * 
	 * (素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除)
	 */
	public static void main(String[] args) {
		int i, j;
		int count = 0;
		int sum = 0;

		for (i = 2; i <= 100; i++) {
			for (j = 2; j < i; j++) {
				if (i % j == 0)
					break;
			}
			if (j >= i) {// 也可以写成j==i
				System.out.print(i + " ");
				sum += i;
				count++;
				if (count % 5 == 0) {
					System.out.println();
				}
			}
		}

		System.out.println("100以内的所有素数之和为:" + sum);

	}

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

提示:

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

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

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

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



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

	}



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

	}

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

 



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

		System.out.println("李白壶中原有"+alcohol+"斗酒");
	}

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

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



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

	}

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



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

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



	/*
	 * 练习28:求两个整数的最大公约数和最小公倍数
	 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个整数:");
		int num1 = sc.nextInt();
		System.out.println("请输入第二个整数:");
		int num2 = sc.nextInt();
		int max;
		int min;

		if (num1 > num2) {
			max = num1;
			min = num2;
		} else {
			max = num2;
			min = num1;
		}

		// 最大公约数
		for (int i = min; i >= 1; i--) {
			if (num1 % i == 0 && num2 % i == 0) {
				System.out.println("最大公约数:" + i);
				break;
			}
		}

		// 最小公倍数
		for (int i = max;; i++) {
			if (i % num1 == 0 && i % num2 == 0) {
				System.out.println("最小公倍数:" + i);
				break;
			}
		}
		sc.close();

	}

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



	/*
	 * 练习29:将100元兑换为1元、5元、10元的零钱,请问有多少种兑换方法?
	 */
	public static void main(String[] args) {

		int yiYuan = 1;
		int wuYuan = 5;
		int shiYuan = 10;
		int count = 0;
		for (int i = 0; i <= 100; i++) {
			for (int j = 0; j <= 20; j++) {
				for (int k = 0; k <= 10; k++) {
					if (i * yiYuan + j * wuYuan + k * shiYuan == 100) {
						count++;
						System.out.println(i + "张1元," + j + "张5元," + k + "张10元");
					}
				}
			}
		}

		System.out.println("一共有" + count + "种兑换方法");

	}

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



	/*
	 * 练习30:用100元人民币兑换10元,5元,1元的纸币(每种都要有),计算有多少种兑换方案
	 */
	public static void main(String[] args) {
		int yiYuan = 1;
		int wuYuan = 5;
		int shiYuan = 10;
		int count = 0;
		for (int i = 1; i <= 100; i++) {
			for (int j = 1; j <= 20; j++) {
				for (int k = 1; k <= 10; k++) {
					if (i * yiYuan + j * wuYuan + k * shiYuan == 100) {
						count++;
						System.out.println(i + "张1元," + j + "张5元," + k + "张10元");
					}
				}
			}
		}

		System.out.println("一共有" + count + "种兑换方法");
	}

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



	/*
	 * 练习31:设计Java程序,假设有50瓶饮料,喝完3个空瓶可以换一瓶饮料,依次类推,请问总共喝了多少瓶饮料?
	 */
	public static void main(String[] args) {
		int drink = 50; // 饮料总数
		int count = 0; // 兑换次数
		while (true) {
			drink -= 3; // 喝3瓶
			drink++; // 兑换1瓶
			count++; // 兑换次数+1
			if (drink < 3) {
				System.out.println("共喝了" + (50 + count) + "瓶");
				break;
			}
		}

	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值