亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

先看題目:數列的規律是從第3個數開始,每個數是前兩個數的和,最后那句不明白啊

先看題目:數列的規律是從第3個數開始,每個數是前兩個數的和,最后那句不明白啊

慕斯王 2023-01-03 16:12:51
“public static int Foo(int i)”即定義一個公共靜態函數體,輸入一個整數(第X位數),返回值;“if (i <= 0) return 0;”預防輸入0或負數,輸入則返回“0”;“else if (i > 0 && i <= 2) return 1;”如果輸入第1位或第2位,則返回“1”(如題);“else return Foo(i - 1) + Foo(i - 2);”輸入其它的數則返回前兩個數的值。注意:因為求數列中每一個值都是調用該函數,所以求前兩個數的值就又要調用2個這個函數。這就是遞歸(調用自身)。eg:求Foo(30)的值,則返回Foo(29) + Foo(28)的值,其中又要調用Foo(29) 和Foo(28)求它們的值,Foo(29)又要調用Foo(28)和Foo(27),Foo(28)又要調用Foo(27)和Foo(26)……直到調用Foo(2)和Foo(1)會返回“1”,“{”又一層層代回去,最后加出正確答案。} 
查看完整描述

2 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

這個就是斐波那契數列。
遞歸就像遞推,跟數學上的遞推很相似。
“又一層層代回去,最后加出正確答案”
這句話的意思是,比如算Foo(5)
(a) Foo(5) = Foo(4)+Foo(3)

(b) Foo(4) = Foo(3)+Foo(2)
(c) Foo(3) = Foo(2)+Foo(1) = 1 + 1 = 2;

然后把(c)的結果代入到(b)中,
(b) Foo(4) = Foo(3)+Foo(2) = 2 + 1 = 3
然后把(b)和(c)的結果代入到(a)中,

(a) Foo(5) = Foo(4)+Foo(3) = 3 + 2 = 5

最后得到Foo(5)
兩次代入就是所說的一層層代回去

查看完整回答
反對 回復 2023-01-06
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

public static int Foo(int Num)
{
if(Num<=0)

{
return 0;

}

if(Num<=2 && Num>0)

{
return 1;

}

else
{
return Foo(n-1)+Foo(n-2);

}

}
調用
Foo(30)
希望能幫到你?。?/p>


查看完整回答
反對 回復 2023-01-06
  • 2 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號