#1.递归的方法:
青蛙跳台阶问题类似斐波那契数列
但是用递归来写,会出现递推的深度太深的情况
所以推荐用非递归的方式来写
递归的方式:从第三项开始为前两项的和
Fun(n-1)+ Fun(n-2)
递归的终止条件:n<=2
int Func(int input)
{
if (input <= 2)
{
return input;
}
if (input <= 0)
{
printf("输入错误,请重新输入\n");
}
return Func(input - 1) + Func(input - 2);
}
int main()
{
int input = 0;
scanf("%d", &input);
int ret = Func(input);
printf("%d ",ret);
return 0;
}
#2.非递归的方法:
非递归其实就是用三个变量来写
例如a,b,c
c = a + b;//首先要使a,b为1
a = b;//主要就是后一项b的值赋值给前一项a
b = c;//然后以此等到各项的值
int Func(int input)
{
if (input <= 2)
{
return input;
}
if (input <= 0)
{
printf("输入错误,请重新输入\n");
}
int a = 1;
int b = 2;
int c = 0;
while (input>2)
{
c = a + b;
a = b;
b = c;
input--;
}
return c;
}
int main()
{
int input = 0;
scanf("%d", &input);
int ret = Func(input);
printf("%d ", ret);
return 0;
}