问题1:题目概述
这次带来的例题是一道简单题,题目概述如下:
题目要求输入一个整数n,然后从高位到低位输出每位的数字,假设我输入123,则输出必须为1 2 3。就是那么简单(数字之间用空格分开)。
问题2:思路
我们之前说过递归二要素是停止条件和规律。123 如果我们要得到1,可以123/10/10,连续两次取模,得到2和3可以通过取余得到。那么规律就是除了最高位,其他各位数字都用取余得到。
停止条件则是达到最高位。
具体代码:
#include<stdio.h>
void fun(int n)
{
if (n / 10 == 0)
printf("%d ", n);//输出最高位
else
{
fun(n / 10);//因为要先输出高位,所以要优先探索递归的最底层。
printf("%d ", n % 10);//上一级结束后在本级打印,然后回到下一级。
}
}
int main(void)
{
int n;
scanf_s("%d", &n);//输入n
fun(n);
return 0;
}