C语言 青蛙跳台阶问题

目录

​编辑

1.问题描述

2.问题分析

3.全部代码

4.结语


1.问题描述

一只青蛙可以一次跳一级台阶,也可以一次跳两级台阶,如果青蛙要跳上n级台阶有多少种跳法?

2.问题分析

当台阶只有一级时,只能跳一级,所以只有一种跳法

当台阶有两级时,可以先跳一级,再跳一级,或者直接跳两级

所以有两种跳法

当台阶有三级时,可以这么来思考,

假如先跳一级,剩下的就是二级台阶的情况,

如果先跳两级,那么剩下的一级,剩下的就是一级台阶的情况,

则三级台阶的跳法等于前两级台阶之和,

假如是五级台阶,可以先拆为四级和三级,再把四级和三级往下拆解即可

所以前两次台阶数量等于跳法

当台阶数量大于二时,可以看成斐波拉契数列来计算:n = (n-1) + (n-2)

3.全部代码

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int frog(int n)
{
	if (n <= 2)
		return n;
	//当台阶级数小于等于2时的跳法
	else
		return frog(n - 1) + frog(n - 2);
	//当台阶级数大于2时的跳法
}

int main()
{
	int n = 0;
	scanf("%d", &n);
	//可以随机输入台阶的级数
	int m = frog(n);
	//创建一个frog函数
	printf("%d\n", m);
}

4.结语

今天的经验分享就到这里,有喜欢的朋友可以点赞➕评论➕收藏➕关注,如果有不懂的地方可以咨询博主,谢谢大家支持博主!

相关推荐
索迪迈科技1 小时前
java后端工程师进修ing(研一版‖day42)
java·开发语言·学习·算法
Chris.Yuan7701 小时前
Java代理模式详解
java·开发语言·代理模式
Forever_Hopeful1 小时前
【C 语言生成指定范围随机数(整数 + 小数):原理、实现与避坑指南】
服务器·c语言·开发语言
午夜游鱼2 小时前
Go 泛型实战:一行代码封装 sync.Pool,性能与安全兼得
开发语言·安全·golang
mit6.8242 小时前
[邮件服务器core] 安全通信(SSL/TLS) | OpenSSL库管理 | 服务端安全SECURITY.md
c语言·github
长安——归故李2 小时前
【modbus学习】
java·c语言·c++·学习·算法·c#
索迪迈科技2 小时前
STL库——map/set(类函数学习)
开发语言·c++·学习
ForteScarlet3 小时前
Kotlin 2.2.20 现已发布!下个版本的特性抢先看!
android·开发语言·kotlin·jetbrains
anlogic3 小时前
Java基础 9.10
java·开发语言·算法
yongche_shi3 小时前
第二篇:Python“装包”与“拆包”的艺术:可迭代对象、迭代器、生成器
开发语言·python·面试·面试宝典·生成器·拆包·装包