C语言猴子吃桃问题算法 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    有前面几道题的基础,这道题还是比较简单的,我们来看问题:

    猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个,

C语言猴子吃桃问题算法

。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

    1.分析,我们先来看看这个问题的数学模型:

    设n为第一天摘的桃子数。那么根据已知条件有:

    s1=n/2-1;

    s2=s1/2-1;

    …

    s10=s9/2-1=1;

    那么很显然有:

    s9=(s10+1)*2;

    s8=(s9+1)*2;

    …

    s1=(s2+1)*2;

    s0=(s1+1)*2=n;

    那么利用10趟循环就可以解决问题,

电脑资料

C语言猴子吃桃问题算法》(https://www.unjs.com)。

    2.我们来看源代码:

    #include

    #include

    //猴子吃桃问题

    int main()

    {

    int n=1;

    int day=10;

    while(day>0)

    {

    n=2*(n+1); //昨天的桃子数等与今天桃子数加1的二倍

    day--;

    }

    printf("Totally %d peaches!\n",n);

    }

    这里为了方便理解是从10到1循环,其实怎么循环都行,只要保证循环次数是10即可。

最新文章