[数据结构与算法分析笔记]-递归思想的初探

当我们输入一串整数,希望依次打印其值(一次一位)譬如输入"12345",依次打印1,2,3,4,5。如何设计程序?

解决这个问题方法十分多样,我们这里采取“递归”思维进行设计

#include 

void PrintDigit(int n) {
    printf("%d\n", n);
}

void PrintOut(int n) {
    if (n >= 10) {
        PrintOut(n / 10);
    }
    PrintDigit(n % 10);
}

int main() {
    int number = 12345;
    PrintOut(number);
    return 0;
}

这里我们首先关注主函数定义了int类型的变量12345,并且将其传入了函数PrintOut。

在PrintOut函数中,我们利用了取模的方法来逐个获取字符。此时我们发现取模的方法有其局限性,我们只有对一个小于10的数取模,方可直接获取该数位上的数字。因此我们想到了办法:在PrintOut函数里面再调用一次PrintOut函数,直到该数字小于等于10,再进行取模。

我们将这种在A函数里面重复调用A函数的行为,称为函数的递归,这种递归思想在程序设计当中十分重要。

你可能感兴趣的:(笔记,算法,数据结构)