猴子分香蕉

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;
}
12-26 07:54