2025-03-09 学习记录--C/C++-PTA 习题10-8 递归实现顺序输出整数

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

一、题目描述 ⭐️

2025-03-09 学习记录--C/C++-PTA 习题10-8 递归实现顺序输出整数_第1张图片

裁判测试程序样例:

#include 

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、递归返回,依次输出 2345

2025-03-09 学习记录--C/C++-PTA 习题10-8 递归实现顺序输出整数_第2张图片
在这里插入图片描述

你可能感兴趣的:(学习-C/C++,学习,c语言)