下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

C语言递归算法是如何进行的?

作者:课课家教育     来源: http://www.kokojia.com点击数:935发布时间: 2020-02-10 15:53:16

标签: C语言编程语言C语言课程

大神带你学编程,欢迎选课

其实,C语言发展的那么多年来,用C语言开发的系统和程序浩如烟海。在发展的同时也积累了很多能直接使用的库函数。

当在一个函数中调用同一个函数(自身)时,它在C语言中被称为递归。调用相同函数的函数称为递归函数。

一个调用自身,并且在函数调用后不执行任务的函数被称为尾递归。 在尾递归中,我们通常使用return语句调用相同的函数。下面给出了一个尾递归递归的例子。

recursionfunction(){  
    recursionfunction();// 函数名称一样,自身调用自身函数
}
C

C语言中尾递归的例子

我们来看一个使用C语言中的尾递归打印因子数的例子。首先创建一个名称为:recursion的工程,在这个工程下创建一个源文件:recursion-example.c,其代码如下 -

#include<stdio.h>   

int factorial(int n)
{
    if (n < 0)
        return -1; /*Wrong value*/
    if (n == 0)
        return 1; /*Terminating condition*/
    return (n * factorial(n - 1));
}

void main() {
    int fact = 0;
    fact = factorial(5);
    printf("\\n factorial of 5 is %d \\n", fact);

}
C

执行上面代码,得到以下结果 -

shell code-toolbar">factorial of 5 is 120
Shell

我们可以通过下面的图形来理解上述递归方法调用的程序:

C语言如何通过值和引用函数?_C语言_编程语言_C语言课程_课课家

其实,C 语言程序鼓励和提倡人们把一个大问题划分成一个个子问题,对应于解决一个子问题编制一个函数,因此,C 语言程序一般是由大量的小函数而不是由少量大函数构成的,即所谓"小函数构成大程序"。这样的好处是让各部分相互充分独立,并且任务单一。因而这些充分独立的小模块也可以作为一种固定规格的小"构件", 用来构成新的大程序。



赞(15)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程