iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言 递归解决青蛙跳台阶问题
  • 543
分享到

C语言 递归解决青蛙跳台阶问题

2024-04-02 19:04:59 543人浏览 独家记忆
摘要

目录前言一、求解思路二、代码实现1.参考代码2.运行结果总结 前言 一只青蛙一次可以跳1级或2级台阶,求当台阶数为n时青蛙有多少种跳法。 一、求解思路 台阶的数量为n。 当 n =

青蛙跳台阶动图 的图像结果

前言

一只青蛙一次可以跳1级或2级台阶,求当台阶数为n时青蛙有多少种跳法。

一、求解思路

台阶的数量为n。

当 n = 1 时,青蛙有一种跳法,即跳1级台阶。

当 n = 2 时,青蛙有两种跳法,即跳两次1级台阶或跳一次2级台阶。

当 n = 3 时,青蛙可以先跳2级台阶再跳1级台阶,也可以选择先跳1级台阶再跳2级台阶,或者是跳三次1级台阶。依次类推,我们就能知道台阶数为n时青蛙的跳法。

但是,这样子是不是很麻烦呢,再仔细想一下。

还是当 n = 3 时,我们选择先跳1级台阶,剩下的2级台阶的跳法,是不是就是当 n = 2 时青蛙的跳法;我们选择先跳2级台阶,剩下的1级台阶的跳法,是不是就是当 n = 1 时青蛙的跳法。

由此可知,n = 3 时青蛙的跳法为 n = 1 时的跳法加上 n = 2 时的跳法。

当 n = N 时,N个台阶的跳法为 N-1 的跳法加上 N-2 的跳法。

乍一看,是不是感觉和斐波那契数列有点像,当然,还是有一丢丢不一样的,不过我们可以用同样的数学思想来解决这个问题。

二、代码实现

1.参考代码


#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
 
int flog(int n)
{
	if (n == 1)	
		return 1;	
	else if (n == 2)
		return 2;	
	else
		return flog(n - 1) + flog(n - 2);
}
int  main()
{
	int n = 0;
    int ways = 0;
	printf("请输入台阶的数量:");
	scanf("%d", &n);
	ways = flog(n);
	printf("青蛙有%d种跳法",ways);
	return 0;
}

2.运行结果

总结

孤寡 孤寡 孤寡

到此这篇关于C语言 递归解决青蛙跳台阶问题的文章就介绍到这了,更多相关C语言 递归内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C语言 递归解决青蛙跳台阶问题

本文链接: https://www.lsjlt.com/news/157859.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言 递归解决青蛙跳台阶问题
    目录前言一、求解思路二、代码实现1.参考代码2.运行结果总结 前言 一只青蛙一次可以跳1级或2级台阶,求当台阶数为n时青蛙有多少种跳法。 一、求解思路 台阶的数量为n。 当 n = ...
    99+
    2022-11-12
  • C语言中如何使用递归解决青蛙跳台阶问题
    这篇文章主要介绍C语言中如何使用递归解决青蛙跳台阶问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、求解思路台阶的数量为n。当 n = 1 时,青蛙有一种跳法,即跳1级台阶。当 n = 2 时,青蛙有两种跳法,即...
    99+
    2023-06-25
  • C语言递归之汉诺塔和青蛙跳台阶问题
    递归就是一个函数执行过程中调用自己,在c语言中有很多关于递归的经典问题,例如:斐波那契数列问题、汉诺塔问题等,在研究递归问题时我们要注意三点: 1.递归的结束条件 2.递归在每次进行...
    99+
    2022-11-12
  • C语言如何解决青蛙跳台阶问题
    小编给大家分享一下C语言如何解决青蛙跳台阶问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 基础问题题目描述一只青蛙一次可以跳上 1 级台阶,也可以跳上 2...
    99+
    2023-06-29
  • C语言解决青蛙跳台阶问题(升级版)
    目录1. 基础问题题目描述解题思路代码实现2. 问题升级题目描述解题思路代码实现3. 特性总结1. 基础问题 题目描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级。求该青蛙...
    99+
    2022-11-13
  • Java解决青蛙跳台阶问题流程
    1.问题描述 一只青蛙一次可以跳上1阶台阶,也可以跳上2阶台阶,求该青蛙跳上一个n阶台阶总共有多少种跳法? 2.画图分析  3.问题讲解  一只青蛙,要么1次跳2个台阶,要么1次跳...
    99+
    2022-11-13
  • C 语言基础实现青蛙跳台阶和汉诺塔问题
    目录一、青蛙跳台阶题目思路分析1. 从跳法次数分析2. 从过程分析二、青蛙跳台阶变式1题目分析三、青蛙跳台阶变式2题目分析四、汉诺塔问题(求步数)题目思路分析五、汉诺塔问题(求移动过...
    99+
    2022-11-12
  • C语言递归函数与汉诺塔问题怎么解决
    今天小编给大家分享一下C语言递归函数与汉诺塔问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。递归函数直接或者间接调...
    99+
    2023-07-02
  • C语言递归函数与汉诺塔问题简明理解
    目录递归函数Hanio(汉诺塔)问题递归函数 直接或者间接调用函数本身。“自己调用自己” 什么情况下面可以使用递归呢 解决一个问题时,解决思路化成与问题本身类...
    99+
    2022-11-13
  • C语言执行时,程序控制台输出窗口一闪而过问题及解决
    目录C执行时,程序控制台输出窗口 一闪而过解决办法vs写C文件执行时,控制台一闪而过1.问题描述2.解决方案有两种C执行时,程序控制台输出窗口 一闪而过 有时候,我们在写C时,执行会...
    99+
    2022-11-16
    C语言执行 程序控制台输出窗口 窗口一闪而过
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作