华为oj初级 学英语
描述
Jessi初学英语,为了快速读出一串数字,编写程序将数字转换成英文:
如22:twenty two,123:one hundred and twenty three。
说明:
数字为正整数,长度不超过十位,不考虑小数,转化结果为英文小写;
输出格式为twenty two;
非法数据请返回“error”;
关键字提示:and,billion,million,thousand,hundred。
方法原型:public static String parse(long num)
知识点 字符串,循环,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归
运行时间限制 10M
内存限制 128
输入
输入一个long型整数
输出
输出相应的英文写法
样例输入 2356
样例输出 two thousand three hundred and fifty six
#include <iostream>
#include <string>
using namespace std;
string NUmberToEnglishString(long int number)
{ string s; if(number<0) { s="error"; return s; } if(number<20) { switch (number) { case 0: s="zero"; return s; case 1: s="one"; return s; case 2: s="two"; return s; case 3: s="three"; return s; case 4: s="four"; return s; case 5: s="five"; return s; case 6: s="six"; return s; case 7: s="seven"; return s; case 8: s="eight"; return s; case 9: s="nine"; return s; case 10: s="ten"; return s; case 11: s="eleven"; return s; case 12: s="twelve"; return s; case 13: s="thirteen"; return s; case 14: s="fourteen"; return s; case 15: s="fifteen"; return s; case 16: s="sixteen"; return s; case 17: s="seventeen"; return s; case 18: s="eighteen"; return s; case 19: s="nineteen"; return s; default: s="error"; return s; } } if(number<100) //21-99 { if (number % 10 == 0) //20,30,40,...90的输出 { switch (number) { case 20: s="twenty"; return s; case 30: s="thirty"; return s; case 40: s="forty"; return s; case 50: s="fifty"; return s; case 60: s="sixty"; return s; case 70: s="seventy"; return s; case 80: s="eighty"; return s; case 90: s="ninety"; return s; default: s="error"; return s; } } else { s=NUmberToEnglishString(number/10*10)+' '+NUmberToEnglishString(number%10); return s; } } if(number<1000) //100-999 { if(number%100==0) { s=NUmberToEnglishString(number/100)+" hundred"; return s; } else { s=NUmberToEnglishString(number/100)+" hundred and "+NUmberToEnglishString(number%100); return s; } } if(number<1000000) //1000-999999 百万以下 { if(number%1000==0) { s=NUmberToEnglishString(number/1000)+" thousand"; return s; } else { s=NUmberToEnglishString(number/1000)+" thousand "+NUmberToEnglishString(number%1000); return s; } } if(number<1000000000) //十亿以下 { if(number%1000000==0) { s=NUmberToEnglishString(number/1000000)+" million"; return s; } else { s=NUmberToEnglishString(number/1000000)+" million "+NUmberToEnglishString(number%1000000); return s; } } if (number<9999999999) //十亿到99亿 { if(number%1000000000==0) { s=NUmberToEnglishString(number/1000000000)+" billion"; return s; } else { s=NUmberToEnglishString(number/1000000000)+" billion "+NUmberToEnglishString(number%1000000000); return s; } } if (number>9999999999) { s="error"; return s; } }
int main()
{ long int a; cin>>a; cout<<NUmberToEnglishString(a)<<endl; }
华为oj初级 学英语相关推荐
- 华为OJ 初级:人民币转换
描述 考试题目和要点:1.中文大写金额数字前应标明"人民币"字样.中文大写金额数字应用壹.贰.叁.肆.伍.陆.柒.捌.玖.拾.佰.仟.万.亿.元.角.分.零.整等字样填写.(30分 ...
- 华为OJ 初级:合并表记录
描述 数据表记录包含表索引和数值.请对表索引相同的记录进行合并,合并后表记录为相同索引表的数值求和 函数说明:public int mergeRecord(List oriList, List rst ...
- 华为oj初级 求解立方根
描述 •计算一个数字的立方根,不使用库函数 详细描述: •接口说明 原型: public static double getCubeRoot(double input) 输入:double 待求解参数 ...
- 华为oj初级 字符逆序
描述 将一个字符串str的内容颠倒过来,并输出.str的长度不超过100个字符. 如:输入"I am a student",输出"tneduts a ma I" ...
- 华为oj初级 密码强度等级
描述 密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分. 一.密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二.字母: 0 分: ...
- 循环相乘取整法C语言,华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)...
题目描述: 输出两个不超过100位的大整数的乘积. 输入: 输入两个大整数,如1234567 123 输出: 输出乘积,如:151851741 样例输入: 1234567 123 样例输出: 1518 ...
- 【华为OJ】【042-矩阵乘法】
[华为OJ][算法总篇章] [华为OJ][042-矩阵乘法] [工程下载] 题目描述 如果A是个x行y列的矩阵,B是个y行z列的矩阵,把A和B相乘,其结果将是另一个x行z列的矩阵C. 这个矩阵的每个元 ...
- 【华为OJ】【067-求最小公倍数】
[华为OJ][算法总篇章] [华为OJ][067-求最小公倍数] [工程下载] 题目描述 正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数. ...
- C语言无符号双字节乘法,华为OJ机试标题:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)...
华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘) 题目描述: 输出两个不超过100位的大整数的乘积. 输入: 输入两个大整数,如1234567 123 输出: 输出 ...
最新文章
- AngularJS 初始化加载流程
- Cisco呼吁Arista停止在美国销售产品
- poj 3461 Oulipo(kmp统计子串出现次数)
- Spring boot的Spring MVC自动配置原理
- 信息学奥赛一本通 2064:【例2.1】交换值
- mysql 添加删除权限_MySQL实例讲解:添加账户、授予权限、删除用户
- 1、webpack入门例子。
- asp.net oracle连接数据库,通过ASP.NET连接Oracle数据库实例教程
- 华为PUSH推送所有Token都不合法
- Java实现Word转PDF【完整版】
- echarts饼图pie中间显示总数
- 魅族手机调试出现is waiting for debugger的问题解决
- 前端工程的价值体现在哪里
- 路由(gorilla/mux)
- 亲自传授我的各种经典的篮球技术动作gif图
- SDNU 1270.超超的难题
- Nodejs的安装随笔
- Python-从笛卡尔坐标插值到极坐标
- 《MongoDB入门教程》第15篇 文档更新之$inc操作符
- IBinder跨进程通信
热门文章
- 通过Transporter迁移MongoDB 数据至elasticsearch
- Java基础:01Java语言概述(常见的DOS命令,Java语言的特点、核心机制、环境搭建,HelloWorld,注释,Java API 文档)
- 阅读text2sql论文《RAT-SQL: Relation-Aware Schema Encoding and Linking for Text-to-SQL Parsers》
- relative absolute实例讲解
- 一个不错的金蝶KIS专业版条码扫描插件
- 小米WIFI恢复出厂设置方法
- wps的高亮怎么用_WPS表格高亮显示重复项功能的使用及其不足介绍与改进
- Excel只对列上指定内容进行序号累加的操作
- VBA 类模块理解和使用总结
- Linux的一些简单命令操作,好懂易学(1)