五猴分桃python_五猴分桃问题

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

先给这堆桃子加上4个,设此时共有X个桃子,最后剩下a个桃子.这样:

第一只猴子分完后还剩:(1-1/5)X=(4/5)X;

第二只猴子分完后还剩:(1-1/5)2X;

第三只猴子分完后还剩:(1-1/5)3X;

第四只猴子分完后还剩:(1-1/5)4X;

第五只猴子分完后还剩:(1-1/5)5X=(1024/3125)X;

得:a=(1024/3125)X;

要使a为整数,X最小取3125.

减去加上的4个,所以,这堆桃子最少有3121个.

=============

从上可扩展该问题,可扩展为N猴分N桃问题.

并可通过程序实现.以后会对该问题进行补充.:

#include

void main()

{

int monkey=1;//进行分桃的猴子数

int peaches,peach;//桃的总数和每次分桃的总数

peaches=1;

peach=peaches;

while(monkey<=5)

{

if(peach%5==1&&peach/5!=0)

{

peach=(peach/5)*4;

monkey++;

}//符合条件进行下一次的分桃

else

{

peaches++;

peach=peaches;

monkey=1;

}

}

printf("桃的最小总数为:%d\n",peaches);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值