1002 写出这个数 (20)

题目内容

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


题目链接

1002 写出这个数 (20)


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

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

输入样例:1234567890987654321123456789
输出样例:yi san wu


思路

使用字符串存储数据,然后将将每个字符从字符串中提取出来,保存在一个数组中,最后从数组中提取出要输出的拼音数字

C++实现:

#include <iostream>
#include <string>

using namespace std;

string Pingyin[10] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int num[30] = {0};

int main (void)
{
    string st;
    cin >> st;
    int sum = 0;

    for (int i = 0; i < st.size(); i++)
    {
        int temp;
        temp = st[i] - '0';
        sum += temp;
    }

    int k = 0;      //记录第几位 
    while (sum != 0)
    {
        int val = 0;
        val = sum % 10;
        sum = sum / 10;
        num[k] = val;
        k = k + 1;
    }

    for (int i = k - 1; i > 0; i--)
    {
        int temp;
        temp = num[i];
        cout << Pingyin[temp] << " ";
    }

    cout << Pingyin[num[0]];
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/NaLaEur/p/9160465.html