C语言算法之猴子吃桃

秋收冬储,建议在寒冷的冬天,学一门能拿得出手的技能,以备不时之需。


学技术,重在日拱一卒、一点一滴的积累。


今天一起分析C语言的算法之6猴子吃桃。


算法题目:


猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个;到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。



编程思路分析

编程思路:


1、 倒推法,从最后一天算起,最后一天1个,前一天个数为后一天个数加一再乘2;


2、利用递归函数,如果天数为10,则为1个桃子,前一天的话为剩下的+1乘2(4)以此类推。




程序范例


#include

 

#define uchar unsigned char

#define uint unsigned int

 

void main()

{

   uchar day,i;

   uint s=0,j=1,k=0;

 

    printf("请输入第几天剩下一个桃子!回车结束!\n");


     /*输入第几天剩下一个桃子*/

     scanf("%d",&day);                                   

    if(day==1)

    {

       printf("第一天共有桃子1个!\n");

    }

    else

    {

        for(i=1;i

        {

          /*从最后一天算起,最后一天1个,前一天个数为后一天个数加一再乘2 */

             s=(j+1)*2;                        

             j=s;

         }

         printf("第一天共有桃子%d个!\n",s);

    }

}

 

/*这不科学 第一天 猴子就撑死啦! */


程序运行结果案例:


图片




请使用浏览器的分享功能分享到微信等