题目描述
楼梯有N级台阶,上楼可以一步上一阶,也可以一步上二阶。编一递归程序,计算共有多少种不同走法?
输入
输入N (1 <= n <=36)
输出
输出多少种走法
样例输入 Copy
3
样例输出 Copy
3
#include <stdio.h>
int countWays(int n) {
// 如果台阶数为1或2,直接返回相应的走法数
if (n == 1) return 1;
if (n == 2) return 2;
// 否则,递归计算走法数
return countWays(n - 1) + countWays(n - 2);
}
int main() {
int n;
scanf("%d", &n);
if (n < 1 || n > 36) {
printf("输入的台阶数不在允许范围内\n");
return 1;
}
printf("%d\n", countWays(n));
return 0;
}