读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
题目很简单,直接看代码吧
1 #include<iostream> 2 #include<vector> 3 #include<string> 4 using namespace std; 5 6 int main() 7 { 8 int sum=0,tem; 9 string str; 10 cin>>str; 11 for(unsigned int i=0;i<str.length();i++) 12 { 13 tem=str[i]-'0'; //把char型数字转换成对应的int型 14 sum+=tem; //sum<=900 15 } 16 vector<string> v; 17 for(int i=sum;i!=0;i/=10) //9 25 346 18 { 19 switch(i%10) 20 { 21 case 0: v.push_back("ling");break; 22 case 1: v.push_back("yi");break; 23 case 2: v.push_back("er");break; 24 case 3: v.push_back("san");break; 25 case 4: v.push_back("si");break; 26 case 5: v.push_back("wu");break; 27 case 6: v.push_back("liu");break; 28 case 7: v.push_back("qi");break; 29 case 8: v.push_back("ba");break; 30 default: v.push_back("jiu"); 31 } 32 } 33 vector<string>::iterator iter; 34 for(iter=v.end()-1;iter!=v.begin();iter--) 35 cout<<*iter<<" "; 36 cout<<*iter; 37 return 0; 38 }