HJ42 学英语
描述
Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文:

具体规则如下:
1.在英语读法中三位数字看成一整体,后面再加一个计数单位。从最右边往左数,三位一单位,例如12,345 等
2.每三位数后记得带上计数单位 分别是thousand, million, billion.
3.公式:百万以下千以上的数 X thousand X, 10亿以下百万以上的数:X million X thousand X, 10 亿以上的数:X billion X million X thousand X. 每个X分别代表三位数或两位数或一位数。
4.在英式英语中百位数和十位数之间要加and,美式英语中则会省略,我们这个题目采用加上and,百分位为零的话,这道题目我们省略and

下面再看几个数字例句:
22: twenty two
100: one hundred
145: one hundred and forty five
1,234: one thousand two hundred and thirty four
8,088: eight thousand (and) eighty eight (注:这个and可加可不加,这个题目我们选择不加)
486,669: four hundred and eighty six thousand six hundred and sixty nine
1,652,510: one million six hundred and fifty two thousand five hundred and ten

说明:
数字为正整数,不考虑小数,转化结果为英文小写;
保证输入的数据合法
关键字提示:and,billion,million,thousand,hundred。

数据范围:1 \le n \le 2000000 \1≤n≤2000000

输入描述:
输入一个long型整数

输出描述:
输出相应的英文写法

示例1
输入:
22
输出:
twenty two

#include<bits/stdc++.h>
using namespace std;string num_20[] = {"", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten","eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"};
string num_tens[] = {"", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"};string num_to_string(long long num){string res;long long x = num / 1000000000;num = num % 1000000000;if (x != 0){res += num_to_string(x) + " billion ";}x = num / 1000000;num = num % 1000000;if (x != 0){res += num_to_string(x) + " million ";}x = num / 1000;num = num % 1000;if (x != 0){res += num_to_string(x) + " thousand ";}//x = num / 100;num = num % 100;if (x != 0){res += num_20[x] + " hundred ";}//if (num > 0 && num <= 20){if (x == 0) res += num_20[num] + " ";else res += "and " + num_20[num] + " ";}if (num > 20){if (x == 0) res += num_tens[num / 10] + " ";else res += "and " + num_tens[num / 10] + " ";if (num % 10 != 0) res += num_20[num % 10] + " ";}return res.substr(0, res.size()-1);
}int main(){long long num;while(cin >> num){cout << num_to_string(num);}    return 0;
}

【HJ42 学英语】C++相关推荐

  1. 牛客网 HJ42 学英语

    描述 Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文: 具体规则如下: 1.在英语读法中三位数字看成一整体,后面再加一个计数单位.从最右边往左数,三位一单位,例如12,345 等 ...

  2. HJ42 学英语(递归)

    描述 Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文:如22:twenty two,123:one hundred and twenty three. 说明:数字为正整数,长度不超 ...

  3. 【牛客网华为机试】HJ42 学英语

    题目 描述 Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文: 如22:twenty two,123:one hundred and twenty three. 说明: 数字为正整数 ...

  4. 【华为机考题库学习】--算法篇(更新中……)

    系列文章目录 文章目录 系列文章目录 前言 一.HJ1 字符串最后一个单词的长度 二.HJ2 计算某字符出现的次数 三.HJ3 明明的随机数 四.HJ4 字符串分隔 五.HJ5 进制转换 六.HJ6 ...

  5. 华为机考1-54题总结

    华为笔试面试机考在线练习,欢迎练习并在讨论区交流题解与想法. 华为机试 质数因子 题目描述 功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 ...

  6. 【HUAWEI】华为机试试题-105

    LeeCode试题链接直接上 HJ1 字符串最后一个单词的长度 HJ2 计算某字符出现次数 HJ3 明明的随机数:随机数去重排序输出(小-大) HJ4 字符串分隔:输入一个字符串,请按长度为8拆分每个 ...

  7. PYTHON 牛客刷题记录

    文章目录 一.牛客-简单类 1.HJ81 字符串字符匹配--SET使用 2.二维数组操作--map(),split()使用 3.HJ8 合并表记录--sorted().字典输出 4.HJ80 整型数组 ...

  8. 华为机考108题(c++)(41-51)

    HJ41 称砝码 描述 现有n种砝码,重量互不相等,分别为 m1,m2,m3-mn : 每种砝码对应的数量为 x1,x2,x3...xn .现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种 ...

  9. 华为机试(python):字符串1

    HJ5 进制转换 题目: 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. 输入描述: 输入一个十六进制的数值字符串. 输出描述: 输出该数值的十进制字符串.不同组的测试用例用\n隔开. ...

最新文章

  1. BEM 实战之微信个人页面
  2. C# 利用SharpPcap实现网络包捕获嗅探
  3. else if mybatis 嵌套_mybatis踩坑之——foreach循环嵌套if判断
  4. 正则小记 javascript
  5. JZOJ 100041. 【NOIP2017提高A组模拟7.12】列车调度
  6. windows命令行安装python3_Python3---windows安装与运行
  7. 【遥感数字图像处理】实验:遥感图像分析方法大全(Erdas版)
  8. intellig idea中jsp或html数据没有自动保存和更换字体
  9. Meta AI 发布 data2vec!统一模态的新里程碑!
  10. 需求、需求工程与需求工程师 — 1.定义、作用
  11. 批量生成变量及引用_R语言:data.table语句批量生成变量
  12. 计算机c盘容易满怎么办,C盘快满了怎么办 如何清理C盘垃圾?
  13. 大华事件检测智能服务器,大华股份发布全新智能视频监控服务器,提供高达768Mbps的存储带宽...
  14. 2022年危险化学品经营单位安全管理人员考试练习题及答案
  15. 知识问答题小程序头脑王者源码
  16. lda指令是什么意思_lda指令什么意思
  17. Android 音频管理器AudioManager类介绍
  18. word文档无法编辑且点击后每次跳到首页
  19. 有码变高清!AI一秒还原马赛克,杜克大学出品
  20. python-regex-thread-localhost

热门文章

  1. batocera 完整包_Batocera Plus 2.0 中文整合版bt下载 8G和150G
  2. office2017官方正版
  3. 检讨书应该怎么写,我来做个示范
  4. 语法基础课——第一讲 习题
  5. python必备单词整理_别乱找了,Python常用单词Word合集,已经给你整理全了
  6. 深度学习作业L1W4:深层神经网络
  7. ES修改默认的密码信息
  8. C#生成含数字字母的随机字符串
  9. SQL Server研习录(08)——LEFT()函数
  10. 腾讯云服务器PAI项目管理,腾讯云——PAI节点创建教程