C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類 & 對(duì)象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊(cè)

C++ 遞歸函數(shù)

在本文中,您將學(xué)習(xí)創(chuàng)建遞歸函數(shù)。調(diào)用自身的函數(shù)。

調(diào)用自身的函數(shù)稱為遞歸函數(shù)。并且,這種技術(shù)稱為遞歸。

遞歸在C ++中如何工作?

void recurse()
{
    ... .. ...
    recurse();
    ... .. ...
}

int main()
{
    ... .. ...
    recurse();
    ... .. ...
}

下圖顯示了遞歸調(diào)用的方式。

遞歸在C ++編程中如何工作?

遞歸一直持續(xù)到滿足某些條件為止。

為了防止無(wú)限遞歸,可以在一個(gè)分支進(jìn)行遞歸調(diào)用而另一個(gè)不進(jìn)行遞歸調(diào)用的情況下使用if ... else語(yǔ)句(或類似方法)。

示例1:使用遞歸分解一個(gè)數(shù)字

// n的階乘 = 1*2*3*...*n

#include <iostream>
using namespace std;

int factorial(int);

int main() 
{
    int n;
    cout<<"輸入一個(gè)數(shù)字來(lái)查找階乘: ";
    cin >> n;
    cout << "數(shù)字 " << n <<" 的階乘= " << factorial(n);
    return 0;
}

int factorial(int n) 
{
    if (n > 1) 
    {
        return n*factorial(n-1);
    }
    else 
    {
        return 1;
    }
}

輸出結(jié)果

輸入一個(gè)數(shù)字來(lái)查找階乘: 4
數(shù)字 4的階乘= 24

用法解釋:這個(gè)實(shí)例是如何工作的?

遞歸在C ++編程中如何工作?

假設(shè)用戶輸入了4,并將其傳遞給該factorial()函數(shù)。

  1. 在第一個(gè)factorial()函數(shù)中,測(cè)試if語(yǔ)句為true 內(nèi)的表達(dá)式。return num*factorial(num-1);語(yǔ)句被執(zhí)行,它調(diào)用第二個(gè)factorial()函數(shù),傳遞的參數(shù)num-1為3。

  2. 在第二個(gè)factorial()函數(shù)中,測(cè)試if語(yǔ)句為true內(nèi)的表達(dá)式。return num*factorial(num-1);語(yǔ)句被執(zhí)行,它調(diào)用第三個(gè)factorial()函數(shù),傳遞的參數(shù)為num-1為2。

  3. 在第三個(gè)factorial()函數(shù)中,測(cè)試if語(yǔ)句為true內(nèi)的表達(dá)式。return num*factorial(num-1);語(yǔ)句被執(zhí)行,它調(diào)用第四個(gè)factorial()函數(shù),并且傳遞的參數(shù)是num-1是1。

  4. 在第四個(gè)factorial()函數(shù)中,測(cè)試if語(yǔ)句為false內(nèi)的表達(dá)式。return 1;語(yǔ)句被執(zhí)行,返回1至第三個(gè)factorial()函數(shù)。

  5. 第三個(gè)factorial()函數(shù)將2返回到第二個(gè)factorial()函數(shù)。

  6. 第二個(gè)factorial()函數(shù)將6返回到第一個(gè)factorial()函數(shù)。

  7. 最后,第一個(gè)factorial()函數(shù)將24返回到main()函數(shù),該函數(shù)將顯示在屏幕上。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清