PTA甲级-1005 Spell It Right c++
admin
2024-05-22 17:14:24
0

文章目录

  • 题目内容
      • Input Specification:
      • Output Specification:
      • Sample Input:
      • Sample Output:
  • 一、题干大意
  • 二、题解要点
  • 三、具体实现
  • 总结

题目内容

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

一、题干大意

给出一个非负的整数,范围在0~10^100,需要你将所有位上的字符加起来,然后用英语输出。

二、题解要点

  • 简单来说就是先把输入的数一个个分开加起来,然后把最后加起来的总和再分开,用英语输出

三、具体实现

#include 
#include using namespace std;string turnEnglish(int num);int main() {string n; //用于接收输入的字符串,因为数字过大,如果采用其他类型测试点6会过不了int sum = 0; //用来计算输入数字的总和string theResult = ""; //最后输出的结果cin >> n;/*计算输入数字的各位相加总和*/for (int i = 0; i < n.length(); ++i) {sum += (n[i] - '0');}/*将总和转化为英语*/do {theResult = turnEnglish((sum % 10)) + " " + theResult;sum /= 10;} while (sum != 0);/*由于每次转化都会有一个空格,所以最后需要去掉这个空格*/theResult = theResult.substr(0, theResult.length() - 1);cout << theResult << endl;}/**** 用于数字转英语的函数* @param num* @return*/
string turnEnglish(int num) {switch (num) {case 0:return "zero";case 1:return "one";case 2:return "two";case 3:return "three";case 4:return "four";case 5:return "five";case 6:return "six";case 7:return "seven";case 8:return "eight";case 9:return "nine";default:return "";}
}

总结

难度比较小。但是要注意以下几点:

  1. 这个数字的范围比较大,不能用数字类型的变量去接收;
  2. 如果输入了0也要做处理;
  3. 不要拼错单词。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...