鸡兔同笼问题的算法记录

总结:从问题的不同角度出发能得出不同的算法。

例子:

一个包里有5元和2元现金共18张,总价值共60元整。求5元和2元各有几张。


解法一(二分法,二分次数随问题规模改变):(5*18)+(0*2)=90 ,90>60 ,90-60=30,30>5。

                18/2=9, (9*5)+(9*2)=60,63>60,63-60=3,3<5。

                所以在多一个或少一个5的范围内做微调。但由于63比60大,所以要减少5的个数。

                当少一个5时:8*5=40,(18-8)*2+40 = 60。

                所以有8张5元,10张2元。


解法二(解方程,从总个数出发):设五元X张   

                                5X+2(18-X)=60

                                解方程可得结果。

                                或

                               设五元X张,两元Y张

                                5X+2Y=60

                                X+Y = 18

                                解方程可得结果。


解法三(假设全是小值,从值出发): 思路:假设18张全是2元,则当2元全部消失的时候,就只剩下5元的部分了。

                                60-18*2=24,

                                5-2=3,

                                24/3 = 8,

                                18-8 = 10。

                                所以有8张五元和10张2元。



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值