猴子分香蕉
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
需要提交的是一个整数,不要填写任何多余的内容。
这道题目用最暴力的解法,从6开始一个个往上猜,中间任一分香蕉条件不符合便使总数+1,直到3121才得出正确结果.
代码
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
int x1 = 6, x2 = 0, x3 = 0, x4 = 0, x5 = 0, x6 = 0;
int flag = 1;
while (flag)
{
if (x1 % 5 == 1)
{
x2 = x1 - (x1 - 1) / 5;
if (x2 % 5 == 2)
{
x3 = x2 - (x2 - 2) / 5;
if (x3 % 5 == 3)
{
x4 = x3 - (x3 - 3) / 5;
if (x4 % 5 == 4)
{
x5 = x4 - (x4 - 4) / 5;
if (x5 % 5 == 0)
{
flag = 0;
cout << "It's " << x1 << endl;
}
else
{
x1++;
}
}
else
{
x1++;
}
}
else
{
x1++;
}
}
else
{
x1++;
}
}
else
{
x1++;
}
}
return 0;
}