A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangjunjun 初级黑马   /  2014-7-27 17:06  /  844 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//有50个台阶,一次可以走一步或者两步,
//问,走完50个台阶,有多少个走法

//分析:当只有1个台阶的时候只有1种走法,当有2个台阶的时候有2种走法(11,2),
//当有3个台阶的时候,既可以从第1个台阶上去走2步,也可以从第2个台阶上去走1步,
//当为n个台阶的时候,可以从n-2上去走2步,也可以从n-1上去走1步,

//可以思考一次可以走1,2,3步的问题,这只是一维空间
//也可以拓展到平面,或者3维空间 情况比较复杂

//1个台阶   1
//2个台阶   11 2
//3个台阶        111 12  21
//4个台阶        1111 22  112 211 121
//5       8
// 6       13
//7        21
//8        34
//9        55
//10       89

#include<stdio.h>
#include<stdlib.h>

int go(int n)
{
        if (n == 1)
        {
                return 1;
        }
        else if (n == 2)
        {
                return 2;
        }
        else
        {
                return go(n - 1) + go(n - 2);
        }

}

int  main()
{
        printf("%d", go(50));
        return 0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马