CSDN 樓梯問題

2021-04-02 18:47:14 字數 790 閱讀 4953

/*

form csdn:

假設樓梯有m節,乙個人一不最多跨過n節,問有多少中方法(請給出**)

如m = 4, n = 2;

則有5種方法(1,1,1,1) ;(1,1,2);(1,2,1);(2,1,1);(2,2)

thebadtouch(iamsleepy - 一睡不醒) 給出了乙個很不錯的解法:

#include < stdio.h>

#include < memory.h>

#define min(a,b) (a< b?a:b)

#define max(a,b) (a> b?a:b)

typedef unsigned __int64  int64;//自己根據編譯器改,gcc就是unsigned long long

int main()

我的解法和上面的解法演算法思路是一樣的,我感覺我的更容易被看懂 :-)

我將公式:f(m)=f(m-1)+f(m-2)+...+f(m-n) 做了一下簡化:

f(m)=2f(m-1)-f(m-n-1)這樣子遞迴就很方便了。

*/#include

#include

int way(int num,int step)

int main(int argc,char *argv)

m=atoi(argv[1]);

n=atoi(argv[2]);

printf("there has %d way to up to the stair/n",way(m,n));

getchar();

}

走樓梯問題

宣告 題目來自 自己先做一遍。27.跳台階問題 題目 乙個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。這道題最近經常出現,包括microstrategy等比較重視演算法的公司都 曾先後選用過個這道題作為面試題或者筆試題。思路 一開始我想到的方法就是...

超級樓梯問題

時間限制 3000ms 記憶體限制 32768kb 統計描述 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?輸入輸入資料首先包含乙個整數n,表示測試例項的個數,然後是n行資料,每行包含乙個整數m 1 m 40 表示樓梯的級數。輸出對於每個測試例項,請輸出...

爬樓梯問題

ok,前段時間在一篇blog上看到乙個關於樓梯的面試題,大概內容如下 現有乙個人,規定他上樓梯時只能一步走乙個台階或者兩個台階。要求 給定任意樓梯的階數,求共有多少種方法爬完樓梯。如果有經驗可以看出,這是一道遞迴的題目。不過這個遞迴 程式怎麼寫呢?我的思路是可以這樣想,不管他前面 怎麼爬,最後總是要...