猴子分桃子

题目如下:

五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是 这样分的。问:这堆桃至少有多少个?


这完全是一个数学问题。

假设这堆桃最初有X个。由第一个猴子吃掉一个,拿走一堆,可知X模5得1,即X=5*a+1.,第一个猴子走后剩下4a个桃子。

由第二个猴子吃掉一个,拿走一堆,可知4a模5得1,即4a=5*i+1,其中i>=0,解这个方程,可得a=5*b+4,其中b>=0,剩下16b+12个桃子。

由第三个猴子吃掉一个,拿走一堆,可知16b+12模5得1,即16b+12=5*j+1,其中j>=0,解这个方程可得b=5*c+4,其中c>=0,依次类推。

第四个猴子,得到c=5*d+4,d>=0;第五个猴子,得到d=5*e+4,e>=0。

由上得到a=5a+1=25b+21=125c+121=625d+621=3125e+3121, e>=0。

因此这堆桃至少有3121个。


假如有N个猴子,那么计算最少的桃子数目程序如下:

int i=1;
int sum=0;
while(i<N)
{
    sum=5*sum+4;i++;
} //循环N-1次
sum=5*sum+1; //再综合一下

此时的sum即为最少的桃子数目。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值