c语言----5只猴子分桃

c语言----5只猴子分桃,第1张

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只猴子什么的。**/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12453989.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存