鸡兔同笼问题的算法记录

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

例子:

一个包里有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元。



你可能感兴趣的:(鸡兔同笼问题的算法记录)