2025-03-09 学习记录--C/C++-PTA 习题10-8 递归实现顺序输出整数
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻
一、题目描述 ⭐️
裁判测试程序样例:
#include <stdio.h>
void printdigits( int n );
int main()
{
int n;
scanf("%d", &n);
printdigits(n);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例
12345
输出样例
1
2
3
4
5
二、代码(C语言)⭐️
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
。