本文主要是介绍C 语言递归【第034讲】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【C语言经典算法100道实战题】适合具备C语言基础语法的同学学习,提高编写程序的逻辑思维能力和算法设计能力专门精心设计。100个经典的算法供大家练习及配套对应的录播视频。为我们今后学习其它的编程语言和软件开发打下坚实的基础,让你在编码道路上如鱼得水、如虎添翼等,祝同学学习进步、快乐开心的学习编程,感谢大家的全力支持。
各位可爱的同学们好,现在已经为大家准备好超级精典的C语言、C++语言、C语言经典算法100例、数据结构算法(C语言版)、Windows高级编程(上下册)项目实战课程,希望可以帮助大家提高编程实战水平,点击链接就可以学习啦,祝大家学习开心,天天进步、前程似锦!!!
【C语言经典算法100道实战题】点击链接即可在线学习
C语言经典算法100道实战题--C/C++视频教程-后端开发-CSDN程序员研修院
全套精品学习视频和程序源码代码已更新(第001讲--第100讲),学习目录参考如下:
递归指的是在函数的定义中使用函数自身的方法。
举个例子:
从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……'"
语法格式如下:
void recursion()
{
statements;
... ... ...
recursion(); /* 函数调用自身 */
... ... ...
}
int main()
{
recursion();
}
流程图:
C 语言支持递归,即一个函数可以调用其自身。但在使用递归时,程序员需要注意定义一个从函数退出的条件,否则会进入死循环。
递归函数在解决许多数学问题上起了至关重要的作用,比如计算一个数的阶乘、生成斐波那契数列,等等。
一、数的阶乘
下面的实例使用递归函数计算一个给定的数的阶乘:
实例
#include <stdio.h>
double factorial(unsigned int i)
{
if(i <= 1)
{
return 1;
}
return i * factorial(i - 1);
}
int main()
{
int i = 15;
printf("%d 的阶乘为 %f\n", i, factorial(i));
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
15 的阶乘为 1307674368000.000000
二、斐波那契数列
下面的实例使用递归函数生成一个给定的数的斐波那契数列:
实例
#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;
}
当上面的代码被编译和执行时,它会产生下列结果:
0
1
1
2
3
5
8
13
21
34
这篇关于C 语言递归【第034讲】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!