读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
AC代码如下:
#include<iostream>
#include<string>
using namespace std;
void tranform_sum(string& a);
int main()
{
string a;
getline(cin,a);
tranform_sum(a);
cout<<a;
return 0;
}
void tranform_sum(string& a)
{
register int i,sum=0;
for(i=0;i<a.length();++i)
{
sum+=a[i]-'0';
}
a=to_string(sum);
string b;
for(i=0;i<a.length();++i)
{
switch(a[i])
{
case '0':
b.append("ling ");
break;
case '1':
b.append("yi ");
break;
case '2':
b.append("er ");
break;
case '3':
b.append("san ");
break;
case '4':
b.append("si ");
break;
case '5':
b.append("wu ");
break;
case '6':
b.append("liu ");
break;
case '7':
b.append("qi ");
break;
case '8':
b.append("ba ");
break;
case '9':
b.append("jiu ");
break;
default:
break;
}
}
a=b.erase(b.length()-1);
}
to_string()函数的功能是将数字转换成string类型,具体用法在下面这篇博主的文章中有详细介绍:https://blog.csdn.net/qq_18815817/article/details/82431685
大家如果有不同的的想法,欢迎在评论区讨论!