青蛙跳台阶(使用递归)
当有一阶台阶时,青蛙跳上去有一种方法。
当有两阶台阶时,青蛙跳上去有两种方法。
当有三阶台阶时,青蛙跳上去有几种方法?
当青蛙第一步只跳一阶,则后面还有两阶需要跳,而跳两阶有两种方法。
当青蛙第一步跳两阶,则后面还有一阶,跳一阶只有一种方法。
则跳三阶就等于跳两阶的跳法加上跳一阶的跳法。
所以跳n阶就等于跳n-1阶加跳n-2阶的跳法。
//青蛙跳台阶
#include<stdio.h>
int fac(int n)
{
if (n <= 2)
{
return n;
}
else
{
return fac(n - 1) + fac(n - 2);
}
}
int main()
{
int n = 0;
scanf("%d", &n); //n阶台阶
int res = fac(n);
printf("%d\n", res);
return 0;
}
青蛙跳台阶(使用循环)
//青蛙跳台阶使用循环
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int a = 1;
int b = 2;
int c = 2;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
if (n == 1)
{
c = 1;
}
printf("%d\n", c);
return 0;
}