code show as below:
/*******************************************************
*功能:求以下问题
*一个小猴子边上有100根香蕉,他要走过50米才能到家,每
*次他最多搬50根香蕉搬到家里,请问它最多能把多少根香蕉
*搬到家里?(提示:他可以把香蕉放下往返走,但他必须保
*证每走一米有香蕉吃,也可以走到n米放下一些香蕉拿着n根
*香蕉回去重新搬50根香蕉)
*作者:lml 时间:2020年4月25日 13:41
* *****************************************************/
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i,j; //i是走多少步返回去拿香蕉,j是最后剩下的香蕉数
for(i=1;i<=50;i++)
{
j=(100-3*i)-(50-i); //3*i是开始到i的位置,共走三次,50-i是最后走的那一段
if(100-3*i<=50 && j >=0){
//100-3*i<=50是第二次剩下的香蕉<=50,否则拿不完
printf("i:%d \n",i);
printf("j:%d \n",j);
}
}
//最后的结果剩下最多的香蕉数是j的最大值是16
//此时i=17
return 0;
}
Finish.