亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

C語言項目爬樓梯的兩種實現方法參考

發布時間:2020-08-31 13:41:49 來源:腳本之家 閱讀:480 作者:迂者-賀利堅 欄目:編程語言

【項目-爬樓梯】

樓梯有n階臺階,上樓可以一步上1階,也可以一步上2階,編一程序計算共有多少種不同的走法?

【參考解答(遞歸法)】

基礎:樓梯有一個臺階,只有一種走法(一步登上去);兩個臺階,有2種走法(一步上去,或分兩次上去);

遞推:有n個臺階時,設有count(n)種走法,最后一步走1個臺階,有count(n-1)種走法;最后一步走2個臺階,有count(n-2)種走法。于是count(n)=count(n-1)+count(n-2)。

可見,此問題的數學模型竟然是斐波那契數。

#include<stdio.h>
int main()
{
 unsigned long count(int n);
 int n;
 unsigned long m;
 printf("請輸入樓梯的階數:");
 scanf("%d",&n);
 m=count(n);
 printf("有%lu種爬樓梯的方法\n",m);
 return 0;
}
unsigned long count (int n)
{
 unsigned long f;
 if(n==1)
  f=1;
 else if(n==2)
  f=2;
 else
  f=count(n-1)+count(n-2);
 return(f);
}

遞歸思路清晰,但卻“成本”高。另一個方法,在完成問題建模之后,采用了一種很巧妙的“非常規”的做法,將運算量減少了一半。

//計163-1姜淇瀚
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
int main()
{
 int fib(int a,int b,int n);
 int n;
 scanf(&quot;%d&quot;,&amp;n);
 printf(&quot;%d&quot;,fib(0,1,n));
 return 0;
}
int fib(int a,int b,int n)
{
 if(n==3)
 {
  return a+b;
 }
  return fib(b,a+b,n-1);
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。如果你想了解更多相關內容請查看下面相關鏈接

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

古蔺县| 韩城市| 微山县| 五台县| 江门市| 通化市| 焉耆| 江油市| 邳州市| 磐安县| 东阳市| 沁水县| 探索| 湘西| 太谷县| 津南区| 海淀区| 临洮县| 汾阳市| 九龙城区| 墨玉县| 新龙县| 铜陵市| 依安县| 新蔡县| 鲜城| 连山| 沁源县| 怀来县| 通化市| 万盛区| 江北区| 东乡族自治县| 阜平县| 阿克苏市| 合阳县| 河池市| 汝城县| 灵璧县| 疏附县| 商城县|