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

100个台阶,一次走一步,走两步,走三步,有多少种可能

时间:2017-02-05 18:11:10      阅读:380      评论:0      收藏:0      [点我收藏+]

标签:print   char   第一个   tchar   span   param   多少   递归算法   logs   

分析

第一个台阶  1
第二个台阶  11 2    //走两次1步或者走1次两步
第三个台阶  111 12 21 3
第四个台阶  1111 112 121 211 22 13 31
f(n)=f(n-1)+f(n-2)+f(n-3)  第n个台阶的可能 = n-1台阶的可能+n-2台阶的可能+n-3台阶的可能 

我这里采用了递归算法

//param x  台阶数目
int goadd(int x)
{
    if (x == 1){
        return 1;
    }
    else if (x == 2){
        return 2;
    }
    else if (x == 3){
        return 4;
    }
    else{
        return goadd(x - 1) + goadd(x-2)+goadd(x-3);
    }

}

void main()
{
    printf("%d", goadd(5));
    getchar();

}

 

100个台阶,一次走一步,走两步,走三步,有多少种可能

标签:print   char   第一个   tchar   span   param   多少   递归算法   logs   

原文地址:http://www.cnblogs.com/nfcm/p/6368058.html

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