PAT_B 1002 写出这个数

PAT_B 1002 写出这个数

分析

简单的按照题目要求进行模拟即可

题目的描述

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

AC的代码

#include<bits/stdc++.h>

using namespace std;

int main(){
    string num;
    int sum=0;
    map<int,string> n_p ;
    n_p[0]="ling";
    n_p[1]="yi";
    n_p[2]="er";
    n_p[3]="san";
    n_p[4]="si";
    n_p[5]="wu";
    n_p[6]="liu";
    n_p[7]="qi";
    n_p[8]="ba";
    n_p[9]="jiu";
    cin>>num;
    for (int i=0;i<num.length();i++){
        sum+=(num[i]-'0');
    }
    string t;
    while(sum){
        t+=sum%10+'0';
        sum/=10;
    }
    reverse(t.begin(),t.end());
    for(int i=0;i<t.length();i++){
        cout<<n_p[t[i]-'0'];
        if(i<t.length()-1)cout<<" ";
    }
    //cout<<endl;
    return 0;
}
posted @ 2022-01-24 22:25  ghosteq  阅读(25)  评论(0编辑  收藏  举报