青蛙跳台阶问题C语言函数解法

本文介绍了青蛙跳台阶问题,通过观察得出其解题规律与斐波那契数列相似,并提供了递归与非递归两种函数实现方式。作者作为C语言初学者,分享了解题思路,包括如何找寻规律、创建函数以及优化算法避免大量计算。文章最后给出了调用函数的示例代码。
摘要由CSDN通过智能技术生成

注 :本人C语言初学者,菜鸟一枚,在B站自学,刚自学到函数这里看到这道题,(青蛙跳台阶问题),尝试着解题了一下,把我的解题思路分享给大家。
要解题,首先我们得知到什么是(青蛙跳台阶问题)?
青蛙跳台阶问题: “假设有一只青蛙,一次可以跳一个台阶或者两个台阶,问这只青蛙跳到第n个台阶有多少种跳法?”
用函数去解一道题,首先我们得寻找到这道题的规律,怎么找呢?(笨办法,假设台阶1~N个,然后自己算)
1个台阶有1种跳法
2个台阶有2种跳法
3个台阶有3种跳法(还挺容易算的,嘿嘿)
4个台阶有5种跳法(1111,211,121 112,22)
5个台阶有8种跳法(11111.221.212.122.2111.1211.1121.1112)
6个台阶( 脑壳疼。。。应该是13种,有兴趣的朋友可以验证一下)。
这样我们就可以得到一组数据( 1.2.3.5.8.13…)是不是跟斐波那契数很像,从第三位数开始它的值刚好是前两个数的和。
有了这个规律,我们就可以尝试去创建一个函数。假设我们创建一个函数,函数名是Abc(起名困难户,随便起一个函数名,不想在这里浪费脑细胞),它的返回类型是整形int,让它接受一个整形变量N,这里N就代表我们要算的金盘的个数,写成代码如下
int Abc(int N){}
在{}里我们就可以创建这个函数的实现过程了,首先尝试我们来用递归的办法来实现这个函数,根据计算得来的规律,我们知道N个数值是((Abc(Nÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值