導航:首頁 > 編程語言 > php語言遞歸猴子摘桃編程

php語言遞歸猴子摘桃編程

發布時間:2023-01-30 18:54:03

『壹』 一個編程的問題.!

這道題可以這樣分析:

最後一天即第十天剩下的1個桃子是第九天吃剩的,可知第九天有桃子(1+1)*2 即4個桃子,而第九天的桃子也是第八天吃剩的 則第八天有桃子(((1+1)*2)+1)*2 即10個 依此類推。。。。。。

可以用遞歸來解決:F(1)=1 F(2)=(F(1)+1)*2 F(3)=2*(F(2)+1) ......

用Java編寫一個方法:
public int monkey(int n){
if(n==1)
return 1;
else
return 2*(monkey(n-1)+1);
}

下面是完整的實例:
public class Test {

public static void main(String[] args) {

System.out.println("第一天有桃子 "+monky(10)+"個");

}

public static int monky(int n){
if(n==1)
return 1;
else
return 2*(monky(n-1)+1);
}

}

『貳』 C語言作業:用遞歸法怎麼做猴子摘桃知道的大哥大姐幫幫忙!

猴子摘桃問題

猴子第一天摘下N個桃子,當時就吃了一半,還不過癮,就又多吃了一個。第二天又將剩下的桃子吃掉一半,又多吃了一個。以後每天都吃前一天剩下的一半零一個。到第10天在想吃的時候就剩一個桃子了,問第一天共摘下來多少個桃子?

#include<stdio.h>

intgetPeachNumber(n){
intnum;/*定義所剩桃子數*/
if(n==10)
return1;/*遞歸結束條件*/
else{
num=getPeachNumber(n+1)*2+2;/*遞歸*/
printf("第%d天所剩桃子%d個 ",n,num);/*天數,所剩桃子個數*/
}
returnnum;
}

intmain(void){
intnum=getPeachNumber(1);
printf("猴子第一天摘了%d個桃子。 ",num);

getch();/*屏幕暫留*/
return0;
}

運行結果

『叄』 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
}

『肆』 猴子偷桃用遞歸怎麼解

使用數組的方法為:
#include "stdafx.h"
int main(int argc, char* argv[])
{
int a[10],i,j;
a[0]=1;
for(i=1;i<10;i++)
{
a[i]=(a[i-1]+1)*2;
}
printf("一共有桃子的個數為:%d",a[9]);

return 0;
}

用遞歸的方法為:
#include "stdafx.h"
int fun(int y)
{
int m;
if(y==1) return
m=1;
else
m=(fun(y-1)+1)*2;
return m;

}

int main(int argc, char* argv[])
{
int a=10;
b=fun(a);
printf("一共有桃子的個數為:%d",b);
return 0;
}

本人不會用鏈表進行編寫!

『伍』 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;
}

請採納。

『陸』 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;
}

『柒』 編程 猴子吃桃問題 猴子第一天摘下若干個桃子當機吃了一半還不過癮又吃了一個 以後每天早

先分析問題:用逆向思維來思考它,根據題意「以後每天早上吃前天剩下的一半零一個」,則我們可以用逆向思維來推導它,即從第十天往前推。已知第十天有一個,根據題意第九天應該就是(1+1)*2=4個,第八天應該就是(4+1)*2=10,第七天應該就是(10+1)*2=22,第六天應該就是(22+1)*2=46,
依此類推,直至第1天應該就是第2天(766+1)*=1534個桃子,即猴子第一天摘了1534個桃子。
為了驗證這個推導的正確性,你可以按正常邏輯來把它(即此時由前往後)推導,即由第一天1534個桃子,第二天就是1534/2-1=766個桃子,依此類推,直至第十天,那麼猴子此時就會發現只剩一個。


至此,我們由了推導的思想,再來編寫的代碼,就是小菜一碟的事情啦,實現的它方式無非就是那麼兩種,一種是簡單的for循環,另一種是遞歸。這里我採用遞歸,因為解決此類問題往往用遞歸來思考它,會讓問題變得更簡單。按照數學思維來說 就是求未知數,則可以根據已知數出發進行求解(那麼這里的已知數已經告訴了我們,它說第十天只有一個桃子)。

下面是我的遞歸演算法來求解它的方法:

#include<iostream>
usingnamespacestd;
intrecurrent_monkey(intdays)//猴子吃桃遞歸
{
intpeach;
if(days==10)peach=1;//遞歸出口條件(已知條件第10天只有一個桃子)
elsepeach=(recurrent_monkey(days+1)+1)*2;
returnpeach;
}
intmain()
{
intdays=1;
cout<<recurrent_monkey(days)<<endl;
}

『捌』 用遞歸函數解決猴子吃桃桃問題。問題描述如下:有一堆桃子不知其數,

#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;
}
}
}
N=10,days1=1534

『玖』 用遞歸函數解決猴子吃桃桃問題。問題描述如下

依據題意f(n - 1) = f(n)/2 - 1 下一天等於是前一天吃了一半還多一個剩下的。
所以f(n) = 2 * f(n - 1) + 2
例如:第m天剩餘10個桃子,吃掉一半加一個得到4個,此時下天是4個桃子,接著吃掉一半加一個得到1個,再下一天是1個桃子。
long peachs(int n)
{
if (n <= 0) //不合法返回0
return 0;
if (n == 1) //第n天 f(1)
return 1;
return 2 * peachs(n - 1) + 2; //n天前的桃子數等於n-1天前的桃子數的兩倍加2
//f(n) = 2 * f(n - 1) + 2;
}

閱讀全文

與php語言遞歸猴子摘桃編程相關的資料

熱點內容
鋁膜構造柱要設置加密區嗎 瀏覽:342
考駕照怎麼找伺服器 瀏覽:882
阿里雲伺服器如何更換地區 瀏覽:970
手機app調音器怎麼調古箏 瀏覽:501
銳起無盤系統在伺服器上需要設置什麼嗎 瀏覽:17
紅旗計程車app怎麼應聘 瀏覽:978
如何編寫linux程序 瀏覽:870
吉利車解壓 瀏覽:248
java輸入流字元串 瀏覽:341
安卓軟體沒網怎麼回事 瀏覽:785
dvd壓縮碟怎麼導出電腦 瀏覽:274
冒險島什麼伺服器好玩 瀏覽:541
如何在伺服器上做性能測試 瀏覽:793
命令序列錯 瀏覽:259
javaif的條件表達式 瀏覽:576
手機app上傳的照片怎麼找 瀏覽:531
雲伺服器面臨哪些威脅 瀏覽:748
c語言各種編譯特點 瀏覽:177
路由器多種加密方法 瀏覽:604
程序員阻止電腦自動彈出定位 瀏覽:169