【PAT乙级】1006 换个格式输出整数 (15 分) C语言实现

让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。

输入格式:

每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。

输出格式:

每个测试用例的输出占一行,用规定的格式输出 n。

输入样例 1:

234

输出样例 1:

BBSSS1234

输入样例 2:

23

输出样例 2:

SS123

华丽的分割线

代码实现:

#include <stdio.h>

int main() {
    int arr[3] = {0};
    int num;
    if (scanf("%d", &num)) {
        // 将 数字 拆分然后放入数组中
        int j = 0;
        do {
            int n = num % 10;
            arr[j] = n;
            num = num / 10;
            j++;
        }
        while(num != 0);

        // 打印输出
        for (int i = j - 1; i >= 0; i--) {
            int n = 1;
            for (int k = arr[i]; k > 0; k--) {
                if (i == 2) {
                    printf("B");
                } else if (i == 1) {
                    printf("S");
                } else {
                    printf("%d", n);
                    n++;
                }
            }
        }

        printf("\n");
    }

    return 0;
}
posted @ 2022-05-26 08:40  夏夜星空晚风  阅读(22)  评论(0编辑  收藏  举报