题目:五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的5堆,多出一只,它吃掉一只,拿走一堆,第二只猴子将桃子合并同样干了一次,其它几只都这么做,问min(桃子数)。
解法1:可知如果将桃子总数加上4,第一只猴子将其刚好可以分为5堆,拿到的是自己吃掉的1只和和拿走的一堆,第二只猴子也可以如此做,其它几只同理。
即要求(4^4)*(x + 4)/(5^5)为整数,可知最小的x为3121。即为最少的桃子数。
解法2:用递归求解。从1开始递增遍历。
#include <iostream>
using namespace std;
void doCheck(bool &_check, int _count, int _number)
{
if(_count == 0 && _number >= 0)
{
_check = true;
}
else if(_number % 5 == 1)
{
_number -= ((_number - 1) / 5 + 1);
doCheck(_check, _count - 1, _number);
}
else
{
_check = false;
}
}
int main()
{
bool check = false;
int count = 5;
int number = 1;
while(!check)
{
doCheck(check, count, number);
++number;
}
cout<<number - 1<<endl;
return 0;
}
分享到:
相关推荐
Java 经典算法问题:五只猴子分桃子解题源码,此问题描述为:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又...
有5只猴子共有一堆桃,约好一起分享。第一只猴子来到后把桃平均分成5堆后还剩下一个,就吃了这一个并搬走了5堆中的一堆。第二猴子来到后不知道前一只猴子已经拿走了,它把4堆桃合在一起又平均分成5堆后,也剩下一个...
这是为学习Java基础的资料视频,猴子分桃问题
利用labVIEW进行编写的小程序 猴子吃桃子的问题 10天里猴子一共吃了多少个桃子呢
猴子摘桃图片资源
免费资源可以看博客中《Activity之间的数据回传》进行学习 Android开发 猴子摘桃小项目——学习Activity之间的数据回传
ACM上面的题目。算法很巧妙,在OJ上AC了,有兴趣的可以下载看看
c语言版的猴子吃桃的源程序,用不同的方法求解桃子的总数。其中有递归算法,数组算法,链表算法。
第1课 猴子摘桃-2021.03.13(A).pdf
小猴子摘桃是一个经典的数学题目,其解法可以用程序来实现。下面是一个简单的Android程序,用于解决小猴子摘桃问题,并附带详细解释。
甲、乙、丙3个猴子带着21个篮子去摘桃子。回来以后,发现有7个篮子装满了桃子,还有7个篮子装了半篮桃子,另外7个篮子是空的。假设7个满篮中桃子的重量都相同为a千克,7个半篮中桃子的重量也相同为b千克。在不将桃子...
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,就只剩一个...
h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小...
# 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,...
Java源码猴子分桃问题.rar
基于java实现的解决猴子吃桃问题源码.rar基于java实现的解决猴子吃桃问题源码.rar基于java实现的解决猴子吃桃问题源码.rar基于java实现的解决猴子吃桃问题源码.rar基于java实现的解决猴子吃桃问题源码.rar基于java...
猴子吃桃小游戏源代码,仅是C源文件,没有工程,可以供初学者借鉴。
免费资源可以看博客中《Activity之间的数据回传》进行学习 Android开发 猴子摘桃小项目——学习Activity之间的数据回传
# 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了...
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多 吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。