2、使用c语言迭代和递归算法计算,猴子跳台阶的问题:有一只淘气的猴子一次可以跳1个台阶,也可以一次跳2个台阶,还以一次跳3个台阶,现有n个台阶,猴子从第1台阶跳到第n个台阶总共有多少种跳法。(分别使用迭代算法和递归算法分别实现) 源程序及运行结果:
时间: 2024-02-05 19:11:02 浏览: 163
迭代算法实现:
```c
#include <stdio.h>
int jump(int n) {
int a = 1, b = 2, c = 4;
if (n == 1) return a;
if (n == 2) return b;
if (n == 3) return c;
for (int i = 4; i <= n; i++) {
int t = c;
c = a + b + c;
a = b;
b = t;
}
return c;
}
int main() {
int n;
printf("请输入台阶数n:");
scanf("%d", &n);
printf("共有%d种跳法\n", jump(n));
return 0;
}
```
运行结果:
```
请输入台阶数n:10
共有274种跳法
```
递归算法实现:
```c
#include <stdio.h>
int jump(int n) {
if (n == 1) return 1;
if (n == 2) return 2;
if (n == 3) return 4;
return jump(n - 1) + jump(n - 2) + jump(n - 3);
}
int main() {
int n;
printf("请输入台阶数n:");
scanf("%d", &n);
printf("共有%d种跳法\n", jump(n));
return 0;
}
```
运行结果:
```
请输入台阶数n:10
共有274种跳法
```
阅读全文