1002. 写出这个数 (20)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。
输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:1234567890987654321123456789输出样例:
yi san wu
//#include"stdafx.h" //#include<fstream> #include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; int main() { //ifstream cin("e:\shenjian.txt"); string s; int sum=0; cin>>s; for(int i=0;i<s.length();i++) { if(s[i]=='0') sum+=0; if(s[i]=='1') sum+=1; if(s[i]=='2') sum+=2; if(s[i]=='3') sum+=3; if(s[i]=='4') sum+=4; if(s[i]=='5') sum+=5; if(s[i]=='6') sum+=6; if(s[i]=='7') sum+=7; if(s[i]=='8') sum+=8; if(s[i]=='9') sum+=9; } vector<string> v; int t=sum; while(t!=0){ sum=sum%10; if(sum==0) v.push_back("ling"); if(sum==1) v.push_back("yi"); if(sum==2) v.push_back("er"); if(sum==3) v.push_back("san"); if(sum==4) v.push_back("si"); if(sum==5) v.push_back("wu"); if(sum==6) v.push_back("liu"); if(sum==7) v.push_back("qi"); if(sum==8) v.push_back("ba"); if(sum==9) v.push_back("jiu"); t=t/10; sum=t; } reverse(v.begin(),v.end()); vector<string>::iterator it; int flag=0; for(it=v.begin();it!=v.end();it++) { if(flag==0) { flag=1; cout<<*it; } else{ cout<<" "<<*it; } } return 0; }