上楼梯

来源:互联网 发布:游泳馆预约软件 编辑:程序博客网 时间:2024/04/30 13:21

题目描述
有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。请实现一个方法,计算小孩有多少种上楼的方式。为了防止溢出,请将结果Mod 1000000007
给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100000。
测试样例:
1
返回:1

取模运算:(a+b)%c = ((a%c)+(b%c))%c

class GoUpstairs {public:    int countWays(int n) {        // write code here        int n1=1;        int n2=2;        int n3=4;        if(n==1)            return 1;        else if(n==2)            return 2;        else if(n==3)            return 4;        int temp=0;        for(int i=4;i<=n;i++)            {            temp=((n1+n2)%1000000007+n3)%1000000007;//重点            n1=n2;            n2=n3;            n3=temp;        }        return temp;    }};
0 0
原创粉丝点击