欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

有意思的编程思考题

程序员文章站 2022-03-06 12:31:45
...

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+"瓶啤酒");