目录
前言:
新学习了一个跳台阶问题,用递归的方式向大家介绍。青蛙一次跳1个台阶,也可以跳2个台阶。
一: 递归是什么
递归我也就不长篇大论说了, 简单来说, 就是函数调用自己。把大问题简化成一个小问题.
有一个限制条件,每次递归(调用自己)就越接近,这个限制条件。最后返回。
n的阶乘 可以写成 n*(n-1)! = n*(n-1)*(n-2)!
二: 介绍跳台阶
绿色代表 青蛙
青蛙 可以直接跳到 1台阶或者2台阶, 跳在1台阶在跳到2台阶。
跳第3个台阶, 一个台阶,一个台阶跳
先跳 一个台阶, 跳两个台阶
先跳两个台阶,跳一个台阶
跳到第4个台阶 一个台阶一个台阶跳
先跳一个台阶,跳 两个台阶,跳一个台阶
先跳一个台阶,跳一个台阶,跳两个台阶
先跳两个台阶, 跳两个台阶
先跳两个台阶, 一个台阶,一个台阶跳
三: 代码
int ti(int n)
{
if(n == 1 )
{
return 1;
}
if (n == 2)
{
return 2;
}
else
{
return ti(n - 1) + ti(n - 2);
}
}
int main()
{
int a = 0;
scanf("%d", &a);
int g = ti(a);
printf("%d", g);
return 0;
}
举几个例子,试验一下证明结果。