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;
}
}