天天看点

台阶问题练习

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

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

测试样例:

1

返回:1

动态规划届的弱智题

f(n)=f(n-1)+f(n-2);

class GoUpstairs {
public:
    int countWays(int n) {
        if(n==)
            return ;
        if(n==)
            return ;
        int pre=;
        int cur=;
        int next;
        for(int i=;i<=n;++i){
            next=(pre+cur)%1000000007;
            pre=cur;
            cur=next;
        }
    return next;
    }

};