PAT 1005 Spell It Right HERODING的PAT之路

Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English.
Input Specification:

Each input file contains one test case. Each case occupies one line which contains an N (≤10​100​​).
Output Specification:

For each test case, output in one line the digits of the sum in English words. There must be one space between two consecutive words, but no extra space at the end of a line.
Sample Input:

12345

Sample Output:

one five

题目大意:
输入一组数字字符串,把每一位的数字求和结果用英文表示出来。

解题思路:
老实说这道题还是很良心的,只是用英文表达结果的每一位数字,而不是真正的读法,比如加hundred,thousand之类的就麻烦了。思路很简单,首先每位遍历,- ‘0’求和,再把求和结果转成字符串,按位输出为英文即可(要提前准备好英文输出的字母),代码如下:

#include<iostream>
#include<string>

using namespace std;

string english[10] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

int main(){
    string s;
    int sum = 0;
    cin >> s;
    for(int i = 0; i < s.length(); i ++) {
        sum += s[i] - '0';
    }
    string res = to_string(sum);
    cout << english[res[0] - '0'];
    for(int i = 1; i < res.length(); i ++) {
        cout << " " << english[res[i] - '0'];
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HERODING77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值