PTA刷题之路---乙类1002 写出这个数

一、题目描述

读入一个正整数 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版权协议,转载请附上原文出处链接和本声明。