拼写正确

拼写正确

1. 题目地址

    https://www.acwing.com/problem/content/1479/

2. 题目解析

    假设给定数字 N = 12345 。那么我们应该将该数字的各位数字相加,即:1 + 2 + 3 + 4 + 5 = 15。
    得到相加的数字之后,再用英语来输出每位数字。即:one five

3. 题解

    我们可以通过如下思路来解答本题:
        1.  输入N。
        2.  计算N的每位数字之和。
        3.  将得到的数字的每一位用英语单词输出即可。
    这道题整体来看比较简单,但是有一些坑:
        1.  这道题的数字范围很大,如果我们用数值类型来存,肯定会爆掉。因此,我们需要用字符串类型来存储。
        2.  当我们输出结果时,一定要注意空格的问题,因为PAT对空格的把控及其严格。

4. 代码

#include <iostream>
#include <cstdio>

using namespace std;

int main(){
    
    string number;
    
    cin >> number;
    
    
    //用数组来存储英文单词
    char words[10][10] = {
        "zero","one","two","three","four",
        "five","six","seven","eight","nine"
    };
    
    int sum = 0;
    //得到每位数字的总和
    for( int i = 0; i < number.size(); i ++ ){
        sum += (number[i] - '0');
    }
    //再将总和转换为字符串
    string str = to_string(sum);
    
    //将字符串的每一位用英文表示
    //为了避免多余空格,我们先将第一位输出,之后的其余位再以空格+数字的形式进行输出
    cout << words[str[0] - '0'];
    for( int i = 1; i < str.size(); i ++ ){
        cout << " " << words[str[i] - '0'];
    }
    
    return 0;
}
    作者:gao79138
    链接:https://www.acwing.com/
    来源:本博客中的截图、代码模板及题目地址均来自于Acwing。其余内容均为作者原创。
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @   夏目^_^  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示