LZ你不妨倒着来,题目要求最少,那就假设最后一个猴子(第五只)扔伍雹敏了一个后就没腔枝了,那么第四只猴子扔了后应该有六个,同理,第三只扔了后有(6+1)*5=35个,肆隐所以就有了如下的程序:
#include<stdio.h>
main()
{
int i,s=0
for(i=1i<=5i++)
{
s=(s+1)*5
}
printf("%d \n",s)
}
假如原来有a个桃子手冲第1只猴子拿完后剩(a-1)4/5[(a-1)4/5-1]4/5
{[(a-1)4/5-1]4/5-1}4/5
【{ [(a-1)4/源缓5-1]4/5-1}4/5-1】4/5
《【{ [(a-1)4/5-1]4/5-1}4/5-1】4/5-1》4/5
第五只拿玩后至少要大于等于4
解不等式《【{ [(a-1)4/5-1]4/5-1}4/5-1】4/雹薯模5-1》4/5>=4
求出a循环结束
呵呵,最近怎么一直看到猴子分桃。答案是620~#include <iostream>
using namespace std
float superMonkey(int n,int n2)
/**参数说明:n是几只猴子。n2是最后最迟醒来的猴子拥有的桃数,比如在你的题目最迟醒来的猴子最少最少都要有6个桃子,才能分成五份,再吃掉帆野剩下的一个。**/
{
if (n==1) return n2
float x
x = (5 * (superMonkey(n-1,n2)+1))/4
return x
}
int main(int argc, char *argv[])
{
for(int i=6i<=300i++)
{
cout<<superMonkey(5,i)<<"\n"//5只猴子,为了找出原先最少必须有几个,用循环求答案直到找到一个整数。
}
cin.get()
}
/**接下来出现的一堆数字就是一开始的桃数。不能有小数点的,所以要找的是第一个出现的整数。我放300次循环因为我稍微试过了,620是原先必须有的最少桃数(第一个出现的整数就歼樱是620啊)。你可以稍微改改,放个检测整数的函数,就不用看到一氏轿丛堆数字了。还可以该题目成10只猴子什么的。**/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)