C语言基础:递归(数的阶乘斐波那契数列)
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言基础:递归(数的阶乘斐波那契数列)相关的知识,希望对你有一定的参考价值。
1. 递归
递归指的是在函数的定义中使用函数自身的方法。
语法格式如下:
void recursion()
statements;
... ... ...
recursion(); /* 函数调用自身 */
... ... ...
int main()
recursion();
流程图:
C 语言支持递归,即一个函数可以调用其自身。但在使用递归时,程序员需要注意定义一个从函数退出的条件,否则会进入死循环。
递归函数在解决许多数学问题上起了至关重要的作用,比如计算一个数的阶乘、生成斐波那契数列,等等。
1.1 示例代码:数的阶乘
代码:
#include <stdio.h>
int factorial(unsigned int i)
if(i <= 1)
return 1;
return i * factorial(i - 1);
int main()
int i = 5;
printf("%d 的阶乘为 %d\\n", i, factorial(i));
return 0;
运行结果:
1.2 示例代码:斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
代码:
#include <stdio.h>
int fibonaci(int i)
if(i == 0)
return 0;
if(i == 1)
return 1;
return fibonaci(i-1) + fibonaci(i-2);
int main()
int i;
for (i = 0; i < 10; i++)
printf("%d\\t\\n", fibonaci(i));
return 0;
运行结果:
以上是关于C语言基础:递归(数的阶乘斐波那契数列)的主要内容,如果未能解决你的问题,请参考以下文章