国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言項目爬樓梯的兩種實現(xiàn)方法參考

2020-01-26 13:32:10
字體:
供稿:網(wǎng)友

【項目-爬樓梯】

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

【參考解答(遞歸法)】

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

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

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

#include<stdio.h>int main(){ unsigned long count(int n); int n; unsigned long m; printf("請輸入樓梯的階數(shù):"); 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);}

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

//計163-1姜淇瀚#include <stdio.h>#include <stdlib.h>int main(){ int fib(int a,int b,int n); int n; scanf("%d",&n); printf("%d",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);}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網(wǎng)的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 金堂县| 奇台县| 榆林市| 阿克| 会理县| 顺义区| 株洲县| 汉阴县| 南丹县| 渭南市| 南江县| 吐鲁番市| 富源县| 三亚市| 蓝田县| 克山县| 黔西县| 和顺县| 习水县| 安西县| 杭州市| 定陶县| 邛崃市| 临夏县| 扎囊县| 即墨市| 胶州市| 马边| 师宗县| 云和县| 民县| 张家界市| 九龙坡区| 大悟县| 宝清县| 林西县| 盐边县| 浠水县| 云和县| 西丰县| 木兰县|