今天来分析一道非常经典的递归题目:实现依次打印出数字中的每一位
代码如下:
#include <stdio.h>
void Print(int n)
{
if (n > 9)
Print(n / 10);
printf("%d ", n % 10);
}
int main()
{
int num = 0;
scanf("%d", &num);
Print(num);
return 0;
}
结果如下:
运行顺序
谈到递归的时候,最重要的就是要弄明白它究竟是怎么运行的
下面的方法非常直观的表示了它的运算顺序
这里我用粘贴代码块的方式来展示
刚开始执行的是scanf输入,这里不再赘述
void Print(int n)
{
if (n > 9)
Print(n / 10);
printf("%d ", n % 10);
}
这一块是我们递归的主体
void Print(int n)
{
if (n > 9)
Print(3578 / 10);
if (n > 9)
Print(357 / 10);
printf("%d ", 357 % 10);//7
if (n > 9)
Print(35 / 10);
printf(&#