一.青蛙跳台阶思路
问题:一只青蛙一次最少可以跳 1层 台阶,一次最多可以跳 2层 台阶,求:该青蛙跳上n 层 的台阶总共有多少种跳法?
直接上思路:
二.代码实现
1.递归实现
int steps(int n)
{
if (n <= 2)
{
return n;
}
else
{
return steps(n - 1) + steps(n - 2);
}
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = steps(n);
printf("%d\n", ret);
return 0;
}
2.迭代实现
int steps(int n)
{
int a = 1;
int b = 2;
int c = 3;
if (n <= 2)
{
return n;
}
while (n >= 3)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
scanf("%d", &n);
int ret = steps(n);
printf("%d\n", ret);
return 0;
}