青蛙跳台阶问题解析(函数递归经典问题)

目录

1. 题目描述

2. 题目分析


1. 题目描述

一直青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上一个n级台阶总共有多少种跳法?

2. 题目分析

我将用图解的方式枚举n<=4的情况,再带大家探寻其中蕴含的道理,那么废话不多说图解如下:

青蛙跳台阶问题解析(函数递归经典问题)_第1张图片

 我已经列举了前四种的结果,我们其实可以总结其中的规律,已知青蛙一次只能跳一级或两级台阶,当n=3时,假设青蛙先跳一级台阶,还剩下两级台阶,两级台阶的跳法是2种。在假设青蛙先跳两级台阶,还剩下一级台阶,一级台阶显而易见只有1种。那么三级台阶跳法就是1+2=3种。在检验n=4、n=5时同时成立,说明这就是解决这类问题的通法。

其实不难发现青蛙跳台阶问题就是斐波那契数列类似问题。

 知道了原理,看看代码的实现:

//青蛙跳台阶问题(函数递归经典问题)
#define _CRT_SECURE_NO_WARNINGS
#include
int frog(int x)
{
	if (1 == x)
	{
		return 1;
	}
	if (2 == x)
	{
		return 2;
	}
	return frog(x - 1) + frog(x - 2);
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	int num = frog(n);
	printf("方法有%d种", num);
	return 0;
}

当我们输入想要的n的值时,就会产生想要的结果:

青蛙跳台阶问题解析(函数递归经典问题)_第2张图片

青蛙跳台阶问题解析(函数递归经典问题)_第3张图片

 今天分享就到这里,希望大家一起提高!

你可能感兴趣的:(c语言,算法)