猴子香蕉
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
55 只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第 11 只猴子醒来,把香蕉均分成 55 堆,还剩下 11 个,就吃掉并把自己的一份藏起来继续睡觉。
第 22 只猴子醒来,把香蕉均分成 55 堆,还剩下 22 个,就吃掉并把自己的一份藏起来继续睡觉。
第 33 只猴子醒来,把香蕉均分成 55 堆,还剩下 33 个,就吃掉并把自己的一份藏起来继续睡觉。
第 44 只猴子醒来,把香蕉均分成 55 堆,还剩下 44 个,就吃掉并把自己的一份藏起来继续睡觉。
第 55 猴子醒来,重新把香蕉均分成 55 堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
解题思路:
从最后一个开始,每次剩下的都是原来的五分之四,枚举出可能的结果,注意因为最后剩下的刚好可以五只猴子平分,所以i为5的倍数,不需要一个一个的加
#include <iostream>
using namespace std;
int main()
{
double s, temp = 1.25;
for (int i=5;; i += 5)
{
s = i;
for (int j = 4; j > 0; j--)
{
s = s * temp + j;
}
if ((int)s-s==0)
{
cout << s;
return 0;
}
}
return 0;
}