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

目录

1. 题目描述

2. 题目分析


1. 题目描述

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

2. 题目分析

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

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

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

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

//青蛙跳台阶问题(函数递归经典问题)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
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的值时,就会产生想要的结果:

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值