一只青蛙一次可以跳上1级台阶,也可以跳上2级……。求该青蛙跳上一个n级的台阶总共有多少种跳法。C语言
时间: 2024-02-18 18:04:32 浏览: 87
剑指Offer:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法
5星 · 资源好评率100%
这是一道经典的递归问题,可以使用递归方法解决。青蛙跳上n级台阶的跳法总数等于跳上n-1级台阶和跳上n-2级台阶的跳法总数之和。
下面是 C 语言的递归代码实现:
```c
#include <stdio.h>
int jump(int n)
{
if (n == 1 || n == 2) {
return n;
}
return jump(n - 1) + jump(n - 2);
}
int main()
{
int n;
printf("请输入台阶数n:");
scanf("%d", &n);
int ways = jump(n);
printf("青蛙跳上%d级台阶的跳法总数为:%d\n", n, ways);
return 0;
}
```
输入台阶数n,程序会计算出青蛙跳上n级台阶的跳法总数并输出。例如,输入n为3,输出结果为:
```
请输入台阶数n:3
青蛙跳上3级台阶的跳法总数为:3
```
这种方法的时间复杂度为O(2^n),当n很大时,运行速度会变得很慢。可以使用动态规划方法将时间复杂度优化到O(n)。
阅读全文