学习笔记_循环语句的嵌套

/* P74 循环语句的嵌套 2020-03-16 14:37:10
 * 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买三只雏鸡,现在用100文钱买100只鸡,那么公鸡母鸡雏鸡各多少只?
 * 

↓↓↓↓↓错误代码↓↓↓↓↓

public class Cce_BuyChicken {
	public static void main(String[] args) {
		int cock = 0;	// 公鸡
		int hen = 0;	// 母鸡
		int poult = 0;	// 小鸡
		for (cock = 1; cock <= 20; cock++) {
			for (hen = 1; hen <= cock; hen++) {
				for (poult = 1; poult <= hen; poult++) {
				}
			}
		}
		System.out.println("100文钱能刚好用完能买" + (cock + hen + poult) + "只鸡.");
		System.out.println("其中公鸡有" + cock + "只," + "母鸡有" + hen + "只," + "小鸡有" + poult + "只.");
	}
}

/*print:(错误答案)
    100文钱能刚好用完能买63只鸡.
    其中公鸡有21只,母鸡有21只,小鸡有21只.
================================================================================================
 

*思路:    1、公鸡cock的限制数=100/5,母鸡hen的限制数=100/3,小鸡chick的限制数=100/(1/3)=300,
         因为有100只数限制,所以小鸡也是最多能买100只.可得出三种鸡在for循环里的范围:0~20;0~33;0~100
         2、所以限制条件有2个:
             ①买鸡的钱:cock * 5 + hen * 3 + chick / 3 == 100
             ②鸡的数量:cock + hen + chick == 100(公鸡母鸡小鸡数和要等于100)          
*/

↓↓↓↓↓正确答案↓↓↓↓↓

public class Cce_BuyChicken {    // 百钱买百鸡
	public static void main(String[] args) {
		int cock, hen, chick;    // 公鸡、母鸡、小鸡
		for (cock = 0; cock <= 20; cock++) {    // 最多买20只公鸡
			for (hen = 0; hen <= 33; hen++) {    // 最多买33只母鸡
				for (chick = 3; chick <= 99; chick += 3) { // 最多买99只小鸡(有“百鸡”的限制)
					if (5 * cock + 3 * hen + chick / 3 == 100)    // 百钱
					{
						if (cock + hen + chick == 100)    // 百鸡
						{
							System.out.println("公鸡:" + cock + "\t母鸡:" + hen + "\t小鸡:" + chick);
						}
					}
				}
			}
		}
	}
}

/*print:
公鸡:0    母鸡:25    小鸡:75
公鸡:4    母鸡:18    小鸡:78
公鸡:8    母鸡:11    小鸡:81
公鸡:12    母鸡:4    小鸡:84
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值