C語言演算法之猴子吃桃

XYD漫漫發表於2022-02-22

秋收冬儲,建議在寒冷的冬天,學一門能拿得出手的技能,以備不時之需。


學技術,重在日拱一卒、一點一滴的積累。


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


演算法題目:


猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個;第二天早上又將剩下的桃子吃掉一半,又多吃了一個;以後每天早上都吃了前一天剩下的一半零一個;到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。



程式設計思路分析

程式設計思路:


1、 倒推法,從最後一天算起,最後一天1個,前一天個數為後一天個數加一再乘2;


2、利用遞迴函式,如果天數為10,則為1個桃子,前一天的話為剩下的+1乘2(4)以此類推。




程式範例


#include <stdio.h>

 

#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<day;i++)

        {

          /*從最後一天算起,最後一天1個,前一天個數為後一天個數加一再乘2 */

             s=(j+1)*2;                        

             j=s;

         }

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

    }

}

 

/*這不科學 第一天 猴子就撐死啦! */


程式執行結果案例:


圖片




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014179/viewspace-2856896/,如需轉載,請註明出處,否則將追究法律責任。

相關文章