黑马程序员技术交流社区
标题:
趣味测试题一枚,锻炼一下逻辑能力
[打印本页]
作者:
姬仁贵
时间:
2012-7-24 16:34
标题:
趣味测试题一枚,锻炼一下逻辑能力
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
作者:
刘海源
时间:
2012-7-24 17:37
我了个去,晕晕
作者:
姬仁贵
时间:
2012-7-24 17:41
刘海源 发表于 2012-7-24 17:37
我了个去,晕晕
晕什么涅?
作者:
李伟
时间:
2012-7-24 17:45
package cn.itcast.test;
public class FiveMonkeys
{
public static void main(String[] args)
{
int x=1;//定义第五只猴子分完桃子后每份桃子的数量,默认值为1;
int y;//定义第四只猴子分完桃子后每份桃子的数量
int z;//定义第三只猴子分完桃子后每份桃子的数量
int m;//定义第二只猴子分完桃子后每份桃子的数量
int n;//定义第一只猴子分完桃子后每份桃子的数量,则总桃子数位5n+1;
//如果想求出总桃子数的最小值,就要先求出x的最小值。
int total;//定义桃子总数最小值。
while(x>0)
{
if((5*x+1)%4==0)
{
y=(5*x+1)/4;
if((5*y+1)%4==0)
{
z=(5*y+1)/4;
if((5*z+1)%4==0)
{
m=(5*z+1)/4;
if((5*m+1)%4==0)
{
n=(5*m+1)/4;
total=5*n+1;
System.out.println("海滩上原来最少有:"+total+"个桃子!");
System.out.println("第一个猴子分的每份桃子数:"+n);
System.out.println("第二个猴子分的每份桃子数:"+m);
System.out.println("第三个猴子分的每份桃子数:"+z);
System.out.println("第四个猴子分的每份桃子数:"+y);
System.out.println("第五个猴子分的每份桃子数:"+x);
break;
}
}
}
}
x++;
}
}
}
作者:
李伟
时间:
2012-7-24 17:46
输出结果是:
海滩上原来最少有:3121个桃子!
第一个猴子分的每份桃子数:624
第二个猴子分的每份桃子数:499
第三个猴子分的每份桃子数:399
第四个猴子分的每份桃子数:319
第五个猴子分的每份桃子数:255
作者:
何旭栋
时间:
2012-7-24 18:11
class demo {
/**
* @param args
*
海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,
这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,
同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int i;
int tmp = 1;
int aPart, num;
while(true){
// 第五个猴子一份aPart个桃子,五猴平分前共有num个桃子
aPart = tmp;
num = aPart*5+1;
// 第五个猴子桃子总数为第四个猴子拿走桃子个数的4倍,第四个猴子桃子总数为第三个猴子拿走桃子个数的4倍,
// 即每个猴子桃子总数为4的倍数
// 但第一个猴子桃子总数不是第0个猴子拿走桃子个数的4倍,所以第一个猴子的桃子总数不用是4的倍数
for (i=5; (num&3)==0; i--){
if(i==2){
num = (num>>2)*5+1;
System.out.println("海滩上原来最少有"+num+"个桃子。");
return;
}
num = (num>>2)*5+1;
}
tmp++;
}
}
}
/* 结果为3121个
* 猴子: 1 2 3 4 5
* 拿走: 624 499 399 319 255
* 总数: 3121 2496 1996 1596 1276
*/
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2