//青蛙问题,一个青蛙可以跳一阶或者两阶;可以预想到,青蛙在最后一跳中,要么是单跳,要么是双跳。
//当最后一跳是单跳时,那么这一次跳的次数是上次一跳的次数;当最后一跳是双跳时,那么这一跳是上上次跳的次数。
//假设 number(n) 是跳的次数,那么number(n)=number(n-1)+number(n-2);
//当台阶是 1 时,只有一种可能。
//当台阶是 2 时,有两种可能。
//当台阶是 3 时,有三种可能。
#include<stdio.h>
int number(int x)
{
int y;
if (x==1)
{return 1;}
else if(x==2)
{return 2;}
else
{y = number(x-1)+number(x-2);
return y;
}
}
int main()
{
int a,numberone;
printf("请输入台阶数量:");
scanf("%d",&a);
numberone = number(a);
printf("总共可以产生%d种上台阶方式\n",numberone);
return 0;
}
C语言 递归法 青蛙跳台阶(斐波那契数列变形)
最新推荐文章于 2024-07-09 22:37:42 发布