您的位置:首页 > 其它

动态规划--台阶问题

2017-06-02 11:16 267 查看
int countWays(int n)
{
int hash[100001];//因为最大值为100000
hash[0] = 0;
hash[1] =1;
hash[2] =2;
for (int i = 3; i <=n; i++)
{
hash[i] =(hash[i - 1] + hash[i - 2])%1000000007;
}
return hash
;
}


有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。为了防止溢出,请将结果Mod 1000000007

给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000。

思路:
如果想走到第i层台阶,只能从第i-1层台阶迈一步到第i层台阶,或从第i-2层台阶迈两步到第i层台阶。
所以走上第i层台阶的方法数为:f(i)=f(i-1)+f(i-2),i>2
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: