问题描述:
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu
解决方案思考:
输入数字过长,考虑使用字符串来解决
源代码:
1 #include <iostream> 2 #include <string> 3 #include <sstream> 4 using namespace std; 5 6 7 int main() 8 { 9 int strl,str2,temp,sum=0; 10 string number,sum1,result,temp1=""; 11 cin>>number; 12 strl=number.length(); 13 14 for(int i=0;i<strl;i++) 15 { 16 temp=number[i]-'0';//单个字符转换为数字 17 sum+=temp; 18 19 } 20 21 sum1=to_string(sum); 22 str2=sum1.length(); 23 for(int j=0;j<str2;j++) 24 { 25 switch(sum1[j]) 26 { 27 case '1':temp1="yi";break; 28 case '2':temp1="er";break; 29 case '3':temp1="san";break; 30 case '4':temp1="si";break; 31 case '5':temp1="wu";break; 32 case '6':temp1="liu";break; 33 case '7':temp1="qi";break; 34 case '8':temp1="ba";break; 35 case '9':temp1="jiu";break; 36 case '0':temp1="ling";break; 37 38 } 39 40 cout<<temp1; 41 if(j<str2-1)//最后不输出空格 42 { 43 cout<<" "; 44 } 45 } 46 47 48 49 system("pause"); 50 return 0; 51 }
结果: