TOP

C语言程序设计例子(3):猴子吃桃问题
2017-10-11 15:44:33 】 浏览:10054
Tags:语言 程序设计 例子 猴子 问题

来自于:http://www.jb51.net/article/38051.htm

        http://blog.csdn.net/Neil_Wesley/article/details/51484026

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

思路分析: 
采用逆向思维,从后往前推断,发现其中有相同的地方,即出现递推公式,可以采用递归方法。 
令S10=1,容易看出S9=2(S10+1),简化一下 
S9=2S10+2 
S8=2S9+2 
….. 
Sn=2Sn+1+2 


下面我将解决这个问题。(第一种为普通循环方式,第二种为递归方式)

方法一:while

#include<stdio.h>
int main()
{
    int day,x1,x2;
    day=9;
    x2=1;
    while(day>0)
    {
        x1=(x2+1)*2;
        x2=x1;
        day--;
    }
    printf("the total is %d\n",x1);
}

 方法二:递归

#include<stdio.h>
int sumPeach(int day);
int main()
{
    int sum;
    sum=sumPeach(1);
    printf("%d",sum);
}
int sumPeach(int day)
{
    if(day==10)
    {
        return 1;
    }
    else
        return 2*sumPeach(day+1)+2;
}

 


C语言程序设计例子(3):猴子吃桃问题 https://www.cppentry.com/bencandy.php?fid=45&id=139643

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言程序设计例子(1):求最大.. 下一篇.h和.cpp文件的区别