溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

學(xué)習(xí)遞歸循環(huán)

發(fā)布時間:2020-09-03 04:13:21 來源:網(wǎng)絡(luò) 閱讀:346 作者:wzdouban 欄目:編程語言
 #include <iostream>
 




    using namespace std;
 
/*
題目描述
一只青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法。
*/
 
//0 1 2 3
//f(n) = (最后一次跳一級臺階有多少種方法) + (最后一次跳兩級臺階有多少種方法)
//即:
//f(n) = f(n - 1) + f(n - 2)
class Solution 
{
public:
 int jumpFloor(int number) 
 {
  if (number <= 1)
  {
   return number;
  }
  int first = 1;
  int second = 1;
  while (--number)
  {
   int tmp = second;
   second += first;
   first = tmp;
  }
  return second;
 }
};

     
int main()
{
 Solution s1;
 for (int i = 0; i < 10; i++)
 {
  cout << s1.jumpFloor(i) << endl;
 }
 return 0;
}
//https://github.com/HonestFox/BrushQuestion

 以4個臺階為例子 

那么有(1,1,1,1)(1,2,1)(1,1,2)(2,1,1)(2,2)5種 走法

main()測試中給出了 10階內(nèi)的走發(fā)分別有多少種

循環(huán)中

first   second         tmp

 1           1               

 1            2              1

 2            3              2

 3           (5 )           3

 

 

            

 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI