码迷,mamicode.com
首页 > 其他好文 > 详细

上楼梯

时间:2017-04-20 23:18:04      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:ase   air   sam   goup   log   小孩   正整数   个数   turn   

题目描述

有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶、3阶。请实现一个方法,计算小孩有多少种上楼的方式。为了防止溢出,请将结果Mod 1000000007

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

测试样例:
1
返回:1
class GoUpstairs {
public:
    int countWays(int n) {
        // write code here
        int a[100000]; 
        for(int i=0;i<=100000;i++) 
            a[i]=0; 
        a[1]=1; 
        a[2]=2; 
        a[3]=4; 
        for(int i=4;i<=n;i++) 
            a[i]=((a[i-1]+a[i-2])%1000000007+a[i-3])%1000000007; 
        return a[n]; 
    }
};

 

上楼梯

标签:ase   air   sam   goup   log   小孩   正整数   个数   turn   

原文地址:http://www.cnblogs.com/xiuxiu55/p/6740944.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!