//有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;
} |
|