台階問題(高階版)

2021-08-21 21:08:46 字數 869 閱讀 3904

有 n 級的台階,你一開始在底部,每次可以向上邁最多 k 級台階(最少 1 級),問到達第 n 級台階有多少種不同方式。

多組輸入,兩個正整數n(n ≤ 1000),k(k ≤ 100)。

乙個正整數,為不同方式數,由於答案可能很大,你需要輸出 ans mod 100003 後的結果。

5 2
8
思路:在各種演算法書中都有過舉台階問題的例子,每次可以走1步或2步。而這道題是1-k步,那該怎麼走呢。1.2步時視資料大小可以用dp或遞迴來做,高階了,那就肯定是dp啦。和原例是一樣的思想,到達1的位置時一種,dp[1]=1,到達2的位置時2種,dp[2]=2,到達3的時候dp[3]=上乙個走2步的位置值+上乙個走1步的位置值+1(3步時直達),以此類推,即可推出第n階的種類數。

在處理方法有兩種,一種是用一維陣列儲存狀態,第二種是用二維陣列儲存狀態。實際上是一樣的。

二維陣列:

#includeint dp[105][1005];

int main()

for(int i=1;i<105;i++)

dp[i][j]=s;

} }int m,n;

while(scanf("%d%d",&m,&n)!=eof)

}

一維陣列:

#include#includelong long int dp[1001];

int main()

dp[i]=dp[i]%100003;

}else

dp[i]=dp[i]%100003;

}} printf("%lld\n",dp[n]);

} return 0;

}

跳台階(java版)

題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 1.對於第n個台階來說,只能從n 1或者n 2的台階跳上來,所以f n f n 1 f n 2 2.斐波拉契數序列,初始條件 n 1 只能一種方法 n 2 兩種 遞迴一下就好了 3.當測試用...

思維題 跳台階高階

題目描述 小明在坐景馳科技研發的無人車到達了目的地。景馳科技 jingchi.ai 是一家由人工智慧技術驅動 以無人駕駛技術為核心的智慧型出行公司。它將打造面向中國市場的全無人駕駛。從無人車下來以後,小明看到了乙個長長的樓梯。有乙個n級台階的樓梯,小明一次可以向上跳1步,兩步,甚至是n步,請問小明跳...

跳台階問題

題目 乙個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。分析 這道題最近經常出現,包括microstrategy等比較重視演算法的公司都曾先後選用過個這道題作為面試題或者筆試題。首先我們考慮最簡單的情況。如果只有1級台階,那顯然只有一種跳法。如果有2...