欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PAT 乙级练习 1002

程序员文章站 2022-07-15 13:51:06
...

1002. 写出这个数

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

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

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

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

#include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <iterator>
using namespace std;

int main() {
    string num;
    cin >> num;

    unsigned int sum = 0;
    for(string::iterator it= num.begin(); it!=num.end(); ++it){
        sum += (*it - '0');
    }

    vector<string> i2s = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
    stack<int> numsplite;
    while(sum){
        numsplite.push(sum%10);
        sum /= 10;
    }

    cout << i2s[numsplite.top()];
    numsplite.pop();
    while(!numsplite.empty()){
        cout << ' ' << i2s[numsplite.top()];
        numsplite.pop();
    }

    return 0;
}
相关标签: C++ 程序设计