1002 写出这个数 (20分)

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789
 

输出样例:

yi san wu


#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstdio>
#include<queue>
#include<stack>
#include<cstring>
#include<string.h>
#include<cmath>
using namespace std;
const int maxn=1010;
    

int main(){
    string s;
    cin>>s;
    int b;
    long sum=0;
    int length=s.length();
    for(int i=0;i<length;i++){
        b=s[i]-'0';
        sum+=b;
    }
    string ss[maxn];
    int count=0; 
    while(sum){
        int k=sum%10;
        sum/=10;
        if(k==0){
            ss[count]="ling";
        }
        if(k==1){
            ss[count]="yi";
        }
        if(k==2){
            ss[count]="er";
        }
        if(k==3){
            ss[count]="san";
        }
        if(k==4){
            ss[count]="si";
        }
        if(k==5){
            ss[count]="wu";
        }
        if(k==6){
            ss[count]="liu";
        }
        if(k==7){
            ss[count]="qi";
        }
        if(k==8){
            ss[count]="ba";
        }
        if(k==9){
            ss[count]="jiu";
        }
        count++;
    }
    for(int i=count-1;i>=0;i--){
        if(i>0){
            cout<<ss[i]<<" ";
        }
        else{
            cout<<ss[i];
        }
        
    }
    cout<<endl;
     
    return 0;
}
原文地址:https://www.cnblogs.com/dreamzj/p/13843682.html