IQ智力测试题猴子分桃, 渔夫分鱼

2014-11-22 19:20:03 · 作者: · 浏览: 27

1. 猴子分桃:五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆;第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;……其他几只猴子也都是这样分的。问:这堆桃至少有多少个?


2. 渔夫分鱼:abcde五人打鱼,打完睡觉,a先醒来,扔掉1条鱼,把剩下的分成5分,拿一份走了;b再醒来,也扔掉1条,把剩下的分成5份,拿一份走了;然后cde都按上面的方法取鱼。问他们一共打了多少条鱼,写程序和算法实现。提示:共打了多少条鱼的结果有很多。但求最少打的鱼的结果是3121条鱼。


思考:如果不是平均分呢?



参考答案:


publicstaticvoidHowManyPeachs(intnum)


{


int[] monkey = newint[num];


int sum = 6;


inttmpNum = 0;


boolhasFound = false;


while(true)


{


tmpNum = sum;


for (int k = 0; k

{


if ((tmpNum – 1) % num != 0)


{


break;


}


else


{


monkey[k] = (tmpNum – 1) / num;


tmpNum = tmpNum – monkey[k] – 1;


}


if (k == num – 1)


{


Console.WriteLine(“***********************************”);


Console.WriteLine(“This is the solution:”);


Console.WriteLine(“***********************************”);


Console.Write(“Sum: {0}”, sum);


for (int j = 0; j

{


Console.Write(“, M{0}: {1}”, j + 1, monkey[j]);


}


Console.WriteLine(“.”);


Console.WriteLine();


hasFound = true;


}


}


if (hasFound == true)


{


break;


}


sum = sum + 1;


}


}