1. c语言猴子吃桃问题递归法

//猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了
//一个。第回二天早上又答将第一天剩下的桃子吃掉一半,有多吃了一个。
//以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,
//发现只剩下一个桃子了。编写程序求猴子第一天摘了多少个桃子。
#include<iostream>
using namespace std;
int sum(int p);
int main()
{
int x;
cin >> x;
cout << sum(x) << endl;
return 0;

}
int sum(int p)
{
int n;
if (p == 1)
n = 1;
else
n = 2*( sum(p-1)+1);
return n;
}

2. C语言 用递归算法来解决猴子吃桃问题。:一天一只猴子摘下一堆桃子,吃了一半,觉得不过瘾,又多吃了一

#include<stdio.h>

intn;//n作为全局变量

intpeach(intx)//表示第x天有几个桃子
{
if(x<n)//如果x不是最后一天,那么这一天桃子的数量等于明天桃子数加1再乘以2
return2*(peach(x+1)+1);
elseif(x==n)//如果是最后一天,返回1
return1;
else
return-1;//异常

}

intmain()
{
scanf("%d",&n);//输入题目中的n
printf("%d ",peach(1));
return0;
}

请点赞。

3. C语言猴子吃桃,递归,return 1

getPeachNumber(x)表示第x天剩下桃子的数目

根据你的递归程序,到第十天只剩一个,所以getPeachNumber(10)=1

这个getPeachNumber(10)是反馈给getPeachNumber(9)的

因为getPeachNumber(9)=(getPeachNumber(10)+1)*2

这样你知道第十天剩1个,就返回去算出第九天
算出第九天又能算出第八天

以此类推最后得到第一天

4. C语言猴子吃桃递归法

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

intMonkey(intn);

main()
{
intn;//猴子吃桃的天数,由用户输入

printf("Inputdaysn:");
scanf("%d",&n);

//增强函数的健壮性
if(n<=0)
printf("dataerror! ");
else
printf("x=%d ",Monkey(n));

system("pause");
}

//函数功能:用递归法求累加
intMonkey(intn)
{
intx;
if(n==1)
x=1;
else
x=2*(Monkey(n-1)+1);
returnx;
}

5. C语言猴子吃桃

一个猴子摘了一些桃子,它每天吃了其中的一半然后再多吃了一个,
直到第10天,它发现只有1个桃子了,问它第一天摘了多少个桃子?
猴子分N天吃完了桃子,要想求出第1天的桃子数,就先要求出第2天的桃子数,.......因此,有:
a1=(a2+1)*2;
a2=(a3+1)*2;
a3=(a4+1)*2;
......
a9=(a10+1)*2;
a10=1;
现在就知道了算法,我们可以用递归来求解:
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1个了
else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1
}
-------------------------------------
#include<stdio.h>
int qiu(int a,int n);
main(){
int zuih=1,tians=10;//最后一天的个数,天数
long sum;
sum=qiu(1,10);
printf("di yi tian you %ld ge.\n"):
}
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1个了
else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1
}

6. C语言作业:用递归法做猴子摘桃

#include <stdio.h>
const unsigned int &fun_last(const int &n,const int &day)
{
if(n<0) return -1;
if(day==1) return n;
return fun_last(2*(n+1),day-1); //当天剩n个,前一天剩下2*(n+1)个
}
int main(void)
{
int day=10,n=1;
printf("第一天摘下%d个桃子\n",fun_last(n,day));
return 0;
}

7. C语言递归问题 猴子吃桃

你不应该在被调函数中定义m=1 不然当你反复调用被调函数是 m都会被重新赋值。
我的程序:
#include <stdio.h>
int sb(int,int);
int main( )
{
int n;
scanf("%d",&n);
printf("The monkey got %d peachs in first day.\n",sb(1,n));
return 0;
}

int sb(int m,int n)
{
if(m==n)
return 1;
else
return 2*(sb(m+1,n)+m);
}

8. C语言猴子吃桃问题流程图

一个猴子摘了一些桃子,它每天吃了其中的一半然后再多吃了一个,
直到第10天,它发现只有1个桃子了,问它第一天摘了多少个桃子?
猴子分N天吃完了桃子,要想求出第1天的桃子数,就先要求出第2天的桃子数,.......因此,有:
a1=(a2+1)*2;
a2=(a3+1)*2;
a3=(a4+1)*2;
......
a9=(a10+1)*2;
a10=1;
现在就知道了算法,我们可以用递归来求解:
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1个了
else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1
}
-------------------------------------
#include<stdio.h>
int qiu(int a,int n);
main(){
int zuih=1,tians=10;//最后一天的个数,天数
long sum;
sum=qiu(1,10);
printf("di yi tian you %ld ge.\n"):
}
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1个了
else a=(a(n-1)+1)*2; //前一天总比后1天多一半加1
}

9. C语言用函数递推写猴子吃桃问题

是用递归做的(是你的要求吧?):
#include <stdio.h>
int f(int sum)
{
if(sum==10) //第十天时就剩一个
return 1;
else
{
sum=sum+1;
return 2*f(sum)+1; //其他时候都是俩倍加一
}
}
int main()
{
printf("%d\n",f(1)); //从第一天开始的
return 0;
}

10. c语言猴子吃桃问题

递归法
#include<stdio.h>
int N; //吃到N天还没吃时,剩1个,全局变量
int funn(int n)
{
if(n==N)
return 1;
else
return 2*funn(++n)+2;
}
int main()
{
int days,y;
printf("输入多少天后剩一个\n");
scanf("%d",&N);
for(days=1;days<=N;days++)
{
y=funn(days);
printf("days%d\t%d\n",days,y);
if(y<0)
{
printf("有误");
break;
}
}
}
FOR循环

#include <stdio.h>
main()
{
int days,n;
for(days=10,n=1;days>0;days--)
{
printf("days%d\t%d个\n",days,n);
n=2*n+2;
}
}