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语言基础:递归(数的阶乘斐波那契数列)的主要内容,如果未能解决你的问题,请参考以下文章

Python基础——递归及其经典例题(阶乘斐波那契数列汉诺塔)

用递归函数求n的阶乘及斐波那契数列中的第n个数的值

递归:阶乘斐波那契数列

阶乘斐波那契数列打印三角形(*)递归,冒泡排序

斐波那契数列和递归实现阶乘

C语言用递推和递归两种算法完成斐波那契数列的计算,给一下代码