1002 写出这个数 (20 分)

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10
​100​​ 。
输出格式:
在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:
1234567890987654321123456789
输出样例:
yi san wu

#include<iostream>
#include<string>
using namespace std;
int main(){
    string s;
    cin>>s;
    int sum=0;
    string str[10]={"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba","jiu"};
    for(int i=0;i<s.length();i++){
        sum+=(s[i]-'0');
    }
    string num = to_string(sum);
    for(int i=0;i<num.length();i++){
        if(i!=0) cout<<" ";
        cout<<str[num[i]-'0'];
    }
    return 0;
}

思路:用string接收输入,string的每一位数字累加到sum里面,再将sum转化为string类型的num,对num的每一位输出对应中文拼音
要点:

  1. sum+=(s[i]-‘0’),‘0’ 的意思:字符型数据转换为整型。
  2. to_string(sum),‘to_string’的意思:把数字转化成字符串
  3. 字符串长度直接用xx.length()求
  4. 字符串声明及创建数组:
#include<string> //先声明
string s;
string str[10]={...}```

猜你喜欢

转载自blog.csdn.net/weixin_42741175/article/details/89817830
今日推荐