
程序调用自身的编程技巧成为递归。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序,就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
//纯净代码——不带注释
#include<stdio.h>
//函数定义
//void说明函数无返回值
void print(int n)
{
if (n > 9)
{
print(n / 10);
}
printf("%d ", n % 10);
}
int main(void)
{
//定义无符号型整型
unsigned int num = 0;
scanf_s("%d", &num);
//调用函数
print(num);
return 0;
}代码解析:
首先将输出的123传到n这里 程序运行到if这里, 进行判断,123>9条件成立,进行下一步,进入if 接着将123/10 = 12余的3丢掉 函数接着调用自己 12>9条件成立,继续进行下一步,进入if 再将12/10 = 1 余的2丢掉 函数再次调用自己 此时1>9条件不成立,进行到printf处,1%10 = 0余1,将1输出 到现在,递归函数的条件已经终止(不成立),开始进行逐层返回 梳理一下层数 1层 输入 123, 2层 输入 12 3层 输入 1条件不成立 将1输出 由2层开始逐层向上返回 2层 12%10 = 1余数 2,将2输出 1层 123%10 = 12余数3,将3输出 最后得出结果1 2 3 以下为图解
