有意思的编程思考题
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+"瓶啤酒");
上一篇: 过滤敏感字工具