数字翻译器及其实现
来源:互联网 发布:淘宝盗图被投诉怎么办 编辑:程序博客网 时间:2024/05/21 03:19
【问题描述】
输入一个正整数N(N最大是4位数),输出它的英文表达。
【样例】
输入:1
输出:one
又输入:12
输出:twelve
右输入:135
输出:one hundred thirty five
思路:1、首先19以内的数字,可以直接输出。。
2、20~~~99以内的数字,整十的整数可以直接输出。否则,除以10输出十位数字,与10取模输出个位数字。
3、100~~~999以内的数字,除以100输出百位数字,与100取模得到一个两位的数字,转到2
4、1000~~~9999以内的数字,除以1000输出千位数字,与1000取模得到一个三位的数字,转到3
完整的实现代码如下:
#include "iostream"using namespace std;char table[20][20]= {"zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","ninteen" };char tens[12][20]={"","ten","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninty","hundred","thousand" };void print(int n){if(n >= 0 && n <= 19){cout<<table[n]; //直接输出19以内的数字}else if(n >= 20 && n <= 99 && n%10 == 0) //整十{cout<<tens[n/10];}else if(n >= 20 && n <= 99) //先输出十位,再输出个位{cout<<tens[n/10]<<" "<<table[n%10];}else if(n >= 100 && n<= 999){print(n/100);cout<<" "<<tens[10]<<" "; //输出百位print(n%100); //递归调用,输出十位和个位}else if(n >= 1000 && n <= 999999){print(n/1000);cout<<" "<<tens[11]<<" "; //输出千位print(n%1000); //递归调用,输出百位、十位和个位}}int main(void){int n;while(cin>>n){print(n);cout<<endl;}system("pause");return 0;}
运行效果图如下:
- 数字翻译器及其实现
- 数字翻译器,Java
- [深度学习] (3)- Keras实现一个简单的翻译器( 从数字到对应的英文 )
- 翻译器
- 中文编程语言实现:翻译器
- 直接数字频率合成技术及其C++的实现
- 密码翻译器
- 编译原理 龙书 第二章 一个简单的算术式(+,-)翻译器实现
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- (转)判断一个字符串是否全是数字的多种方法及其性能比较(C#实现
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)
- 设计模式---翻译器模式
- QTE语言翻译器
- 简单表达式翻译器
- qemu核心-动态翻译器
- 读写XML
- 教你如何使用P2PS进行点播网站开发
- GFT人才思维模型
- 在多语句事务内不允许使用 Create DATABASE 语句
- zoj 1671 Walking Ant (BFS)
- 数字翻译器及其实现
- 敏捷开发中的Code Review
- HTML5的进步与优势
- android,ExpandableList,将被选中的group置于顶端
- POJ1002 487-3249
- nyoj 367 Reward
- 正则表达式匹配文件内容,并打印匹配的行号
- shellcode检测——libemu原理分析
- 无法分析从服务器收到的消息。之所以出现此错误,常见的原因是: 在通过调用 Response.Write() 修改响应时,将启用响应筛选器、HttpModule 或服务器跟踪