合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。
#include
void printdigits( int n );
int main()
{
int n;
scanf("%d", &n);
printdigits(n);
return 0;
}
/* 你的代码将被嵌在这里 */
12345
1
2
3
4
5
void printdigits(int n) {
if (n >= 10) { // 如果 n 大于等于 10,说明还有更高位的数字需要处理
printdigits(n / 10); // 递归调用,处理更高位的数字
}
printf("%d\n", n % 10); // 输出当前最低位的数字
}
1、输入:一个整数 n
。
2、输出:逐行输出 n
的每一位数字,从最高位到最低位。
3、实现逻辑:
通过递归调用 printdigits(n / 10)
,先处理更高位的数字。
递归结束后,输出当前最低位的数字(n % 10
)。
递归的终止条件是 n < 10
,此时直接输出当前数字。
1、printdigits(12345)
调用 printdigits(1234)
。
2、printdigits(1234)
调用 printdigits(123)
。
3、printdigits(123)
调用 printdigits(12)
。
4、printdigits(12)
调用 printdigits(1)
。
5、printdigits(1)
满足终止条件,输出 1
。
6、递归返回,依次输出 2
、3
、4
、5
。