Skip to content

1002 写出这个数

Statement

Metadata

  • 作者: CHEN, Yue
  • 单位: 浙江大学
  • 代码长度限制: 16 KB
  • 时间限制: 400 ms
  • 内存限制: 64 MB

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^{100}

输出格式

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

输入样例

1234567890987654321123456789

输出样例

yi san wu

Solution

#include <stdio.h>
#include <string.h>
int main() {
    char n[1001];
    gets(n);
    int i, j;
    int total = 0;
    for (i = 0; i < strlen(n); i++) {
        total += n[i] - '0';
    }
    int flag;
    int ave;
    int count = 0;
    for (i = 10;; i *= 10) {
        if (total < i) {
            flag = i / 10;
            break;
        }
        count++;
    }
    for (i = 0, j = flag; i <= count; i++, j /= 10) {
        ave = (total / j) % 10;
        if (i) {
            if (ave == 0)
                printf(" ling");
            else if (ave == 1)
                printf(" yi");
            else if (ave == 2)
                printf(" er");
            else if (ave == 3)
                printf(" san");
            else if (ave == 4)
                printf(" si");
            else if (ave == 5)
                printf(" wu");
            else if (ave == 6)
                printf(" liu");
            else if (ave == 7)
                printf(" qi");
            else if (ave == 8)
                printf(" ba");
            else if (ave == 9)
                printf(" jiu");
        } else {
            if (ave == 0)
                printf(" ling");
            else if (ave == 1)
                printf("yi");
            else if (ave == 2)
                printf("er");
            else if (ave == 3)
                printf("san");
            else if (ave == 4)
                printf("si");
            else if (ave == 5)
                printf("wu");
            else if (ave == 6)
                printf("liu");
            else if (ave == 7)
                printf("qi");
            else if (ave == 8)
                printf("ba");
            else if (ave == 9)
                printf("jiu");
        }
    }
    printf("\n");
}

Last update: May 4, 2022
Back to top