p.s.个人收录用
题目描述
楼梯有N级台阶,上楼可以一步上一阶,也可以一步上二阶。编一递归程序,计算共有多少种不同走法?
输入
输入N (1 <= n <=36)
输出
输出多少种走法
样例输入 Copy
3
样例输出 Copy
3
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <string.h>
//走楼梯
int a[100] = { 0 };
int step(int n)
{
if (a[n])
return a[n];
a[n] = step(n - 1) + step(n - 2);
return a[n];
}
int main()
{
int n;
scanf("%d", &n);
a[1] = 1; a[2] = 2;
printf("%d\n", step(n));
}