【C语言历程2.猴子吃桃】猴子摘了若干桃子,第一天就吃了一半加一个,后面几天以此类推,到第十天时,还剩一个了。 问:一共摘了多少个?

        1.解题:这个问题要运用逆向思维,从第10天的还剩1个桃子开始。

         2.分析:它的吃法是一次吃一半加一个,由此我们可得出一个简单的算式:假设s为第9天的数量,就在它的基础上先除2再减1,得到第十天的1.——>s/2-1=1,  s=(1+1)*2=4;

        这样我们就得到一个核心语句了:w为第十天得1,第九天为w=(w+1)*2【与上面推得公式一致】

       最后加一个for循环就好了

        4.图列

【C语言历程2.猴子吃桃】猴子摘了若干桃子,第一天就吃了一半加一个,后面几天以此类推,到第十天时,还剩一个了。 问:一共摘了多少个?_第1张图片

        3.代码:

#include"stdio.h"
 main()
 { int w=1,i;
   for(i=9;i>=1;i--)
    {printf("第%d天吃完后有%d个桃\n",i,w);
     w=(w+1)*2;//得到每次吃完后的桃子数量 
	}
   printf("\n一共摘了%d个桃子",w);
 }

        4.代码输出

【C语言历程2.猴子吃桃】猴子摘了若干桃子,第一天就吃了一半加一个,后面几天以此类推,到第十天时,还剩一个了。 问:一共摘了多少个?_第2张图片

你可能感兴趣的:(C/C++,开发语言,c语言,算法,编辑器,c++)