#include <stdio.h>
//以两个例子来初步的认识和实践应用递归,一个数的计算阶乘,生成斐波那契数列
//注意两个重要的点,递归就是一个函数引用它自身作为运算的形式,还有必须为递归限制一个条件来使它在正确的地方停下来
double factorial( int i)
{
if (i <= 1)
{
return 1;
//so,return factorial(1)=1
return i * factorial(i - 1);
//这种情况下则return factorial(2)=2 , factorial(3)=6.........
}
int main()
{
int i = 15;
printf("%d 的阶乘为 %f\n", i, factorial(i));
//15 的阶乘为 1307674368000.000000
return 0;
}
int fibonaci(int i)
{
if (i == 0)
{
return 0;
}//这里可以确定前两项是0和1,往下就正常递归就可以了
if (i == 1)
{
return 1;
}
return fibonaci(i - 1) + fibonaci(i - 2);
}
int main()
{
int i;
for (i = 0; i < 10; i++)//确保输出i次,以及输出的内容
{
printf("%d\t\n", fibonaci(i));
}
return 0;
}