有意思的编程思考题

1.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? (用编程实现并说出思路)

思路:不知道第五个人多少岁,但从第五个人到第一个人之间都有联系,知道其中一个人的年龄,便知道所有人的年龄,根据规律,每个人相差2岁,可以用for循环来简单的编程求出第五个人的年龄

编程实现:

public static void main(String[] args) {
		int first = 10;//第一个人的年龄
		int age=first;//第五个人的年龄(暂时的)
		for (int i = 1; i < 5; i++) {//1到5个人,循环四次
			age+=2;//每次年龄+2
		}
		System.out.println("第五个人的年龄是:"+age+"岁");//最后输出
	}

2.明明很简单的一题,得出的答案却多样

 

答:10元可以买5瓶,这时有5个瓶盖,5个空瓶,一共可以喝5瓶,

4个瓶盖换1瓶,这时一共可以喝6瓶,剩2个瓶盖,6个空瓶,

6个空瓶换3瓶,这时一共可以喝9瓶,剩5个瓶盖,3个空瓶,

4个瓶盖换1瓶,这时一共可以喝10瓶,剩2个瓶盖,4个空瓶,

4个空瓶换2瓶,这时一共可以喝12瓶,剩4个瓶盖,2个空瓶,

4个瓶盖换1瓶,这时一共可以喝13瓶,剩1个瓶盖,3个空瓶,

2个空瓶换1瓶,这时一共可以喝14瓶,剩2个瓶盖,2个空瓶,

 

2个空瓶换1瓶,这时一共可以喝15瓶,剩3个瓶盖,1个空瓶,

如果可以借,借一个瓶盖,

4个瓶盖换1瓶,这时一共可以喝16瓶,剩1个瓶盖,2个空瓶,

2个空瓶换1瓶,这时一共可以喝17瓶,剩2个瓶盖,1个空瓶,

再借一个空瓶,

2个空瓶换1瓶,这时一共可以喝18瓶,剩3个瓶盖,1个空瓶,

再借一个瓶盖,

4个瓶盖换1瓶,这时一共可以喝19瓶,剩1个瓶盖,2个空瓶,

2个空瓶换1瓶,这时一共可以喝20瓶,剩2个瓶盖,1个空瓶,

可能这时候老板要生气了,还两个瓶盖,一个空瓶

 

所以,如果老板不借,可以喝15瓶,如果可以借,可以喝20瓶

老板不借的代码实现:

public static void main(String[] args) {
		int myMoney=10;//我的钱
		int piJiu=2;//啤酒的钱
		int sum = 0;//可以喝多少瓶
		int pingGai=0;//瓶盖的个数
		int kongPing=0;//空瓶的个数
		
		//第一次
		sum=myMoney/piJiu;
		pingGai+=sum;
		kongPing+=sum;
		
		while (pingGai>=4 || kongPing >=2) {
			while (pingGai>=4) {
				pingGai-=3;//4个瓶盖换1个瓶盖,-4+1=-3
				sum++;//喝的啤酒+1
				kongPing++;//空瓶+1
			}
			while (kongPing >=2) {
				kongPing--;//2个空瓶换1个空瓶,-2+1=-1
				sum++;//喝的啤酒+1
				pingGai++;//瓶盖+1
			}
		}
		System.out.println("老板不借,可以喝:"+sum+"瓶啤酒");

猜你喜欢

转载自blog.csdn.net/qq_40923411/article/details/82707453