C语言案例——青蛙跳台阶问题
题目描述
一只青蛙,一次可以跳1个台阶,也可以跳两个台阶。
问:这只青蛙,跳到第n个台阶,有多少种跳法
解法思路
类似斐波那契数问题
当n>2时求跳上第n级台阶有多少种跳法有:
jump(n)=jump(n-1)+jump(n-2)
解法代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int jump(int n)
{
if (n == 1)
return 1;
else if (n == 2)
return 2;
else
return jump(n - 1) + jump(n - 2);
}
int main()
{
int x = 0;
scanf("%d", &x);
int need = jump(x);
printf("%d\n", need);
return 0;
}
运行结果
输入:5
输出:8