在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ C語言遞歸
C語言printf()和scanf()函數(shù)
C語言strlen()函數(shù)
C語言指針
C語言ftell()函數(shù)
C語言#ifdef指令
C語言程序執(zhí)行流程
C語言歷史
C語言fprintf()和fscanf()函數(shù)
C語言#define指令
C語言#if指令
C語言將數(shù)組傳遞給函數(shù)
C語言指針的指針
C語言rewind()函數(shù)
C語言常量
C語言strcat()函數(shù)
C語言#ifndef指令
C語言continue語句
C語言注釋
C語言#include指令
C語言類型轉(zhuǎn)換
C語言strcpy()函數(shù)
C語言strlwr()函數(shù)
C語言while循環(huán)
C語言字符串
C語言strrev()函數(shù)
C語言gets()和puts()函數(shù)
C語言文件處理
C語言存儲分類
C語言運算符
C語言數(shù)據(jù)類型
C語言strcmp()函數(shù)
C語言VS開發(fā)環(huán)境安裝
C語言轉(zhuǎn)義序列
C語言第一個程序
C語言變量
C語言goto語句
C語言預(yù)處理器指令
C語言指針?biāo)阈g(shù)運算
C語言數(shù)學(xué)函數(shù)
C語言二維數(shù)組
C語言for循環(huán)
C語言命令行參數(shù)
C語言通過值和引用函數(shù)
C語言fputs()和fgets()函數(shù)
C語言do-while循環(huán)
C語言結(jié)構(gòu)體數(shù)組
C語言循環(huán)
C語言#pragma指令
C語言關(guān)鍵字
C語言#error指令
C語言聯(lián)合體
C語言特點
C語言break語句
C語言遞歸
C語言函數(shù)
C語言結(jié)構(gòu)體
C語言switch語句
C語言結(jié)構(gòu)體嵌套
C語言fputc()和fgetc()函數(shù)
C語言fseek()函數(shù)
C語言字符串函數(shù)
C語言if-else語句
C語言教程
C語言宏
C語言數(shù)組
C語言strupr()函數(shù)
C語言#undef指令

C語言遞歸

當(dāng)在一個函數(shù)中調(diào)用同一個函數(shù)(自身)時,它在C語言中被稱為遞歸。調(diào)用相同函數(shù)的函數(shù)稱為遞歸函數(shù)。

一個調(diào)用自身,并且在函數(shù)調(diào)用后不執(zhí)行任務(wù)的函數(shù)被稱為尾遞歸。 在尾遞歸中,我們通常使用return語句調(diào)用相同的函數(shù)。下面給出了一個尾遞歸遞歸的例子。

recursionfunction(){  
    recursionfunction();// 函數(shù)名稱一樣,自身調(diào)用自身函數(shù)
}

C語言中尾遞歸的例子

我們來看一個使用C語言中的尾遞歸打印因子數(shù)的例子。首先創(chuàng)建一個名稱為:recursion的工程,在這個工程下創(chuàng)建一個源文件: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);

}

執(zhí)行上面代碼,得到以下結(jié)果 -

factorial of 5 is 120

我們可以通過下面的圖形來理解上述遞歸方法調(diào)用的程序: