C语言 青蛙跳台阶问题

目录

​编辑

1.问题描述

2.问题分析

3.全部代码

4.结语


1.问题描述

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

2.问题分析

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

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

所以有两种跳法

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

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

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

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

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

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

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

3.全部代码

#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. 青蛙台阶(C语言)

    2024-03-26 19:28:05       56 阅读
  2. C++算法-青蛙台阶【面试】

    2024-03-26 19:28:05       36 阅读
  3. 动态规划-简单举例-青蛙台阶

    2024-03-26 19:28:05       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-26 19:28:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-26 19:28:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-26 19:28:05       82 阅读
  4. Python语言-面向对象

    2024-03-26 19:28:05       91 阅读

热门阅读

  1. git commit 生成patch

    2024-03-26 19:28:05       37 阅读
  2. 0058__developer-roadmap最全的开发者技术学习路线

    2024-03-26 19:28:05       35 阅读
  3. vue的基础知识

    2024-03-26 19:28:05       44 阅读
  4. 使用alias定义命令别名

    2024-03-26 19:28:05       40 阅读
  5. C#实例:SQL如何添加数据

    2024-03-26 19:28:05       44 阅读
  6. 全球化航程中的网络技术与安全策略

    2024-03-26 19:28:05       38 阅读
  7. Mysql数据库SQL从一个表更新至另一个表

    2024-03-26 19:28:05       40 阅读
  8. RCC时钟代码详解<一步一注释>

    2024-03-26 19:28:05       42 阅读
  9. LEETCODE-DAY28

    2024-03-26 19:28:05       39 阅读
  10. 网络安全知识核心之RIP的工作原理

    2024-03-26 19:28:05       38 阅读