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

二、方法简介
本题建议把自然数n以字符串的形式输入,然后通过切片计算求和,难点可能在于这个求和结果如何转换成字符串的形式,这里我们通过C++的sstream头文件来进行转换,示例如下
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
int n = 123; //整数型--123
stringstream ss;
string str;
ss << n;
ss >> str;
cout << str << endl; //字符串“123”
return 0;
}
三、代码
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
string num[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int main()
{
string s;
cin>>s;
int l = s.length();
int sum = 0;
for(int i=0;i<l;i++)
{
sum += s[i] - '0';
}
stringstream ss;
string str;
ss << sum;
ss >> str;
int ll = str.length();
for(int i=0;i<ll;i++)
{
cout<<num[str[i]-'0'];
if(i!=ll-1) cout<<" "; //这是个小坑,最后一位数之后不能输出空格,
//否则会导致输出的结果有格式错误
}
cout<<endl;
return 0;
}
版权声明:本文为qq_44528283原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。