标签:out 字符 拼音 namespace str iostream 状态 png inf
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于10的100次方。
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
1234567890987654321123456789
yi san wu
因为自然数n可能为很大的数字,所以使用字符串接受输入,然后遍历每个字符,相加得出各位数字之和,计算和之后需要再转化为字符串,然后根据数字与汉语拼音的映射输出即可。
#include <iostream>
#include <string>
#include <stdlib.h>
#include <sstream>
using namespace std;
int main(int argc, char** argv) {
string seq;
int number = 0;
string map[] = {"ling", "yi", "er", "san", "si", "wu",
"liu", "qi", "ba", "jiu"};
cin >> seq;
// 计算各位数字之和
for (char i : seq) {
number += i - 48;
}
stringstream ss;
ss << number;
// 将数字之和转化为字符串
string result = ss.str();
// 映射输出汉语拼音
int length = result.length();
for (int i = 0; i < length; i++){
cout << map[result[i] - 48];
if (i != length-1 ){
cout << " ";
}
}
}
标签:out 字符 拼音 namespace str iostream 状态 png inf
原文地址:https://www.cnblogs.com/another-7/p/12122708.html