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