有20级台阶,每次只能上1或2阶,共有多少次算法,c语言用递归算法编写程序
时间: 2024-10-13 16:02:51 浏览: 63
这是一个著名的斐波那契数列问题变种,也可以用递归的方式来解决,不过这里实际上是求解到达第20级台阶的不同走法数量。由于每次只能上一步或两步,我们可以看到每一步都对应着前几步的组合,所以这个问题可以用动态规划的思想来避免重复计算。
对于递归函数,我们可以这样定义:
```c
#include <stdio.h>
int climbStairs(int n) {
if (n <= 1) {
return n;
} else {
// 从第一步到第n步有两种情况:要么是直接走两步,要么是先走一步再走一步
return climbStairs(n - 1) + climbStairs(n - 2);
}
}
int main() {
int steps = 20;
printf("There are %d ways to reach the 20th step.\n", climbStairs(steps));
return 0;
}
```
该程序会计算并打印出到达第20级台阶的不同走法数目。
阅读全文