有只小猴子,路边有80根香蕉,小猴子走40步能到家,每走一步要吃1根香蕉,否则就停止不前,小猴子每次能搬40根 香蕉,请编程求出小猴子最多能搬多少根香蕉回到家。

有只小猴子,路边有80根香蕉,小猴子走40步能到家,每走一步要吃1根香蕉,否则就停止不前,小猴子每次能搬40根香蕉,请编程求出小猴子最多能搬多少根香蕉回到家。

答案为13根香蕉,编程代码如下,编程技术有限,请谅解


/*** 总共有80根香蕉每次最多能搬40根,只搬一次肯定是不行的,至少要搬两次,如果搬三次甚至更多次肯定耗费的香蕉更多(搬到一个地方,回来,再去)* 所以分两次搬最划算,那么就需要判断第一次搬40根走到哪里,然后再回来搬剩下的40根,假设第一次走n步那么把所有的80根香蕉搬到中途某个地方时* 消耗的香蕉数为n*3(当然n肯定是小于20的),由于走一步吃一根那么就需要保证到达第一站的时候,剩下的香蕉数是在40左右,这样的话第二次才能一* 搬着剩下的所有香蕉或绝大部分香蕉一次走到家而不用再回头了* @author Administrator**/public class TestMonkey {//总的香蕉数private static int count=80;//每次搬运的最大香蕉数和回家的步数private static int halfcount=count/2;//第一次搬运走的步数设置为firstsetp那么走到此地点,剩余的香蕉数为//count-firstsetp*3,这 个步数的取值设置为使剩余的香蕉数小于或等于halfcount,此时可以搬这剩下的直接回家了private static int firstsetp=0;//count-firstsetp*3 剩余的香蕉数也可能稍稍大于halfcount因为多出一两个可能直接放弃不要了


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部