问题如下图所示,用C++语言编写,谢谢!!!

2025-02-05 17:25:28
推荐回答(1个)
回答1:

//首先分析一下,每次分完的桃子的个数是5的倍数多一个,
//而这个数还要能被4整除(因为是上一个猴子拿完五份中剩下四份的个数)
//5的倍数多一个的整数的末位只能是1或6,末位为1不可能被4整除,因此末位为6
//这样的数可以表示为4*(5i-1),i=1,2,3,......
//代码如下
#include 
using namespace std;
const int MAX_TIME = 1000;
void main()
{
    int peach_num=0;
    int peach_num_bk = 0;
    for(int i=1;i    {
        peach_num = 4*(5*i-1);
        peach_num_bk = peach_num;
        bool isOK = true;
        for(int j=0;j<5;j++)
        {
            if((peach_num-1)%5 != 0)
            {
                isOK = false;
                break;
            }
            peach_num = (peach_num-1)*4/5;
        }
        if(isOK)
        {
            cout<            cout<            break;
        }
    }
}

打印结果:

至少摘了12496个桃子,第五个猴子摘完后还剩下4092个桃子