python猴子分桃_猴子分桃 - Ryan in C++ - 博客园

猴子分桃的故事大体有两种描述:

描述 1 :五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了个数相等的五堆,多出一只;于是,它吃掉了一个,拿走了一堆。第二只猴子起来一看,只有四堆桃,于是把四堆合在一起,分成相等的五堆,又多出一个;然后,它也吃掉了一个,拿走了一堆。剩下的三只猴子也都是这样分的。问:这堆桃至少有多少个?

描述 2 :海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份。第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

分析

程序猿一般这样看问题:总之桃子数目是整数,me 就从 1 开始试,然后分给猴子们,如果可以按题目要求的分法(去掉 1 个然后平均分 5 份,剩下 4 份)分 5 个猴子不就可以了 ? 真是不动脑筋的思考方案呀,尼玛 ! 不过这的确是一种万能的解决方案,对于本题来说,程序也不会运行很久。

现在从一个非程序猿的角度看问题。这里主要是要捕捉到它们的数量关系。

假设第二个猴子拿了 x2 个桃子,第三个猴子拿了 x3 个,那么有这么个关系: 4 x2 = 5 x3 + 1,这是类似于 4 a = 5 b + 1 的式子。毫无疑问的是 a 、b 都是整数了。4 a = 5 b + 1 = 4 b &

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值