垣曲做网站,天津专业网站建设公司,网站上面的头像怎么做的,wordpress格子主题引言 这次#xff0c;我们要与一只活泼可爱的小青蛙合作#xff0c;并引导它跳台阶。小青蛙的体力十分充沛#xff0c;尤其喜欢跳跃#xff0c;让它作为我们的助手#xff0c;来看看有几种跳跃指定台阶数的方法。 本文会涉及到函数递归的知识#xff0c;后续我会更新讲解…引言 这次我们要与一只活泼可爱的小青蛙合作并引导它跳台阶。小青蛙的体力十分充沛尤其喜欢跳跃让它作为我们的助手来看看有几种跳跃指定台阶数的方法。 本文会涉及到函数递归的知识后续我会更新讲解这是值得我们去琢磨的。 那么话不多说我们一起来看看吧 1. 题目介绍 小青蛙一次最少可以跳 1级 台阶一次最多可以跳 2级 台阶求小青蛙跳上 n级 的台阶总共有多少种跳法 2. 题目分析 设跳上 n阶 台阶有f(n)种方法在所有跳法中小青蛙的最后一跳有两种情况跳 1级 台阶或 2级 台阶。 当n1时只有一种跳法。 当n2时跳一次 2级 台阶或者跳两次 1级 台阶有两种跳法。 当n2时青蛙的第一次跳有两种选择跳 1级 台阶或者跳 2级 台阶。 情况一如果青蛙第一次跳1级台阶那么跳上剩下的n-1级台阶的跳法数目为f(n-1)。 情况二如果青蛙第一次跳2级台阶那么跳上剩下的n-2级台阶的跳法数目为f(n-2)。 所以跳上n级台阶的总跳法数目为f(n) f(n-1) f(n-2)。 f(n)为以上两种情况之和由上可知本题递推的性质为 斐波那契数列 本题我们可以转换为求斐波那契数列的第n项但要注意的是二者唯一的不同就是起始数字不一样。 小青蛙跳台阶f(0)1f(1)1f(2)2...... 斐波那契数列f(0)0f(1)1f(2)1...... 3. 题目图解 4. 代码实现
#includestdio.hint StepJumping(int n)
{if (n 1){return 1; // 当只有1层台阶时直接返回1}if (n 2){return 2;// 当只有2层台阶时直接返回2}if (n 2){return StepJumping(n - 1) StepJumping(n - 2);} // 当n2时利用递归计算直到结束停止
}int main()
{int n 0;printf(请输入台阶数n:\n); // 输入跳跃的总台阶数scanf(%d, n);int ret StepJumping(n);printf(小青蛙跳%d阶台阶共有%d种跳法\n,n,ret); // 输出结果return 0;
} 5. 结语 希望这篇文章对大家有所帮助如果你有任何问题和建议欢迎在评论区留言这将对我有很大的帮助。 完结咻~