今天有同事拿着公司的面试题在计算一个题目,貌似很难的样子,我一高兴也掺合了进去

题目是这样的:一片草地25只羊吃18天吃完,21只羊30天吃完,请问要使草地一直吃不完最多可以放几只羊?

写程序写多了总是会把问题想复杂。同事苦思冥想了1个多小时没弄出来(如果真的是去面试早歇菜了),在他认为有5个变量需要处理。

我大概算了2个小时,到现在总算弄出结果了,其实问题很简单,只是我们把它想复杂了。

这过程中我一直认为不同数目的羊吃草的速度不一样,自然草的生长速度不一样,其实错了,草每天的生长速度也应该是一个常量才对(若你还坚持认为草的生长速度会因为不同数目的羊吃了不同量的草会影响草的生长速度,那么OK,你继续想吧)。

草每天的生长速度确实应该是常量,这里就不啰嗦解释了,这样的话,就容易了,假设草地总量为Z,每个羊每天吃草量为X,每天草的生长量为Y,天数为n

那么

25*18X = Z + (18-1)*Y 即 Z=450X-17Y
21*30X = Z + (30-1)*Y 即Z=630X-29Y

这样450X-17Y=630X-29Y,可得出Y=15X

就表示说,草每天的生长量为每只羊吃草量的15倍,自然,保持草一直有的最大的羊的数目就是15了

 

所以总结下来,有时候并不是遇到的问题复杂,而是我们把简单的问题想复杂了,呵呵

回家睡觉