1002 写出这个数

作者: 飞白非白 | 来源:发表于2019-01-02 22:33 被阅读0次

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

源代码

#include <stdio.h>

int main()
{

    // 每一个数由索引与其拼音关联起来
    char map[10][4] = {"ling", "yi", "er",
                       "san", "si", "wu", "liu", "qi", "ba", "jiu"};

    // sum用于保存、各个位之和
    int sum = 0;

    // 用于保存输入的每个数字字符
    char input;

    // 边输入边计算和
    for (int i = 0; (input = getchar()) != '\n' && i < 101; i++)
    {
        // 注意是减去'0',而不是'\0'
        sum = input - '0' + sum;
    }

    // printf("%d", sum);
    // 最大有100个9,各个位数之和不超过900,故最多有三位

    int firstNum = sum / 100;

    int secondNum = (sum % 100) / 10;

    int thirdNum = (sum % 100) % 10;

    //第一位和第二位为0
    if (firstNum == 0 && secondNum == 0)
    {
        printf("%s", map[thirdNum]);
    }

    // 第一位为0,第二位不为0
    else if (firstNum == 0 && secondNum != 0)
    {
        printf("%s %s", map[secondNum], map[thirdNum]);
    }
    // 三位都不为0
    else
    {
        printf("%s %s %s", map[firstNum], map[secondNum], map[thirdNum]);
    }
    return 0;
}

不足之处

题目规定最后一个拼音后面不能有空格,但由于我使用了字符数组,所以自带了一个空字符,为了不添加更多的代码所以没写完善,后面有时间再加吧

相关文章

  • 1002 写出这个数

    题目链接: https://pintia.cn/problem-sets/994805260223102976/p...

  • 1002写出这个数

    读入一个正整数n,计算其各个数字之和,用汉语拼音写出和的每一位数字。输入格式:保证自然数n小于10的100次方。输...

  • 1002 写出这个数

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用...

  • 1002 写出这个数

    题目来源 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1...

  • 1002 写出这个数

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 1 个测试用...

  • 1002. 写出这个数

    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给...

  • 1002. 写出这个数

    原题链接写出这个数: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入...

  • PTA——1002 写出这个数

    题目大意: 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式: 每个测试输入包含 ...

  • PTA 1002 写出这个数

    题目 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含 1 个测...

  • PAT-B 1002 写出这个数(C语言)

    题目 链接:PAT (Basic Level) Practice 1002 写出这个数 读入一个正整数 n,计算其...

网友评论

    本文标题:1002 写出这个数

    本文链接:https://www.haomeiwen.com/subject/thvtrqtx.html