概述
题目描述:青蛙一次可以跳1级或2级台阶,n级台阶,一共有几种跳法?
分析:n = 1 时,只有1种跳法
n = 2 时,青蛙可以两次都跳1级,也可以一次跳2级,共2种跳法
n > 2 时,第一次可以跳 1 级台阶 或者 2 级台阶 (类似斐波那契数),即 f(n) = f(n - 1) + f(n -2);
递归
#include <stdio.h>
int step(int n);
int main()
{
int n = 0;
scanf("%d", &n);
printf("%d", step(n));
return 0;
}
int step(int n)
{
if (1 == n)
{
return 1;
}
else if (2 == n)
{
return 2;
}
else
{
return step(n - 1) + step(n - 2);
}
}
迭代
#include <stdio.h>
int step(int n);
int main()
{
int n = 0;
scanf("%d", &n);
printf("%dn", step(n));
return 0;
}
int step(int n)
{
int i = 0;
int n1 = 1;
int n2 = 2;
int sum = 0;
for (i = 3; i <= n; i++)
{
sum = n1 + n2;
n1 = n2;
n2 = sum;
}
//n = 1 和 n = 2 需要单独讨论
if (1 == n)
{
return n1;
}
else if (2 == n)
{
return n2;
}
else
{
return sum;
}
}
//如有错误,欢迎指正
最后
以上就是娇气手套为你收集整理的青蛙跳台阶(递归和迭代)的全部内容,希望文章能够帮你解决青蛙跳台阶(递归和迭代)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复