阿拉伯数换成英文

#include <iostream>
#include <stdlib.h>
#include <vector>
#include <set>
#include <algorithm>
#include <string>
#include <sstream>
 using namespace std;
 string num1[]={"","thousand","million","billion"};
 string num2[] = { "","","twenty","thirty","forty","fifty","sixty","seventy",
	 "eighty","ninety" };
 string num3[] = { "zero", "one", "two", "three", "four", "five", "six",
	 "seven", "eight", "nine" };
 string num4[] = { "ten", "eleven","twelve","thirteen","fourteen","fifteen",
	 "sixteen","seventeen","eighteen","nighteen" };

 string parse(long num)
 {
     string res;
	 if(num>=0&&num<=9) res+=num3[num];
	 else if(num>=10&&num<=19) res+=num4[num%10];
	 else if(num>=20&&num<=99)
	 {
		 res+=num2[num/10];
		 if(num%10==0) return res;
		 res+=" ";
		 res+=num3[num%10];
	 }
	 else
	 {
		 res+=num3[num/100];
		 res+=" hundred";
		 num%=100;
		 if(num)
		 {
			 res+=" and ";
			 res+=parse(num);
		 }
	 }
	 return res;
 }
 int main()
 {
	 long num;
	 while(cin>>num)
	 {
		vector<int> parts;
		string res;
	     if(num==0)
		 {
			 cout<<"zero"<<endl;
			 continue;
		 }
		 else if(num>999999999||num<0)
		 {
			 cout<<"error"<<endl;
			 continue;
		 }
		 while(num)
		 {
			 int tmp=num%1000;
			 parts.push_back(tmp);
			 num/=1000;
		 }
		 for(int i=parts.size()-1;i>=0;--i)
		 {
			 string tmp=parse(parts[i]);
			 if(tmp=="")continue;
			 res+=tmp;
			 if(i)
			 {
				 res+=" ";
				 res+=num1[i];
				 res+=" ";
			 }

		 }
		 while (res[res.size()-1]==‘ ‘) res.erase(res.end()-1);
		 cout<<res<<endl;
	 }
	 system("pause");
	 return 0;
 }

  

时间: 2024-12-14 00:04:16

阿拉伯数换成英文的相关文章

oracle 的 sqldeveloper换成英文界面

在软件D:\sqldeveloper\ide\bin目录下找到ide.conf添加 AddVMOption -Duser.language=en AddVMOption -Duser.country=US oracle 的 sqldeveloper换成英文界面,布布扣,bubuko.com

将 Photoshop CC 2015.5 英文界面换成中文, 英文与中文界面互换

注:转载或引用请注明出处 在英文的win server 2012 r2 上安装PS CC 2015.5 时,安装程序自动按成了英文版的PS,那么如何将英文换成中文呢? 网上大多将的是将中文换成英文,经过尝试后,发现了将英文换成中文的方法如下: 0. 先关闭PS 1. 下载zh_CN的语言包,我共享如下: http://pan.baidu.com/s/1pK9n4U3 注意,此处的语言包对应PS版本为: 2. 在将安装路径中:Adobe\Adobe Photoshop CC 2015.5\AMT\

将一个罗马数转化成对应的阿拉伯数

阿拉伯数,顾名思义 ,就是我们平时使用最多的数,比如,1,2,3,4,..... 罗马数,是数字最早的表示方式.基本的字符有:I.V.X.L.C.D.M,对应的数字 分别是:1,5,10,50,100,500,1000. 下边给出罗马数的计数规律: 1.两个相同的字符挨着写,表示相加.比如:XX转化成阿拉伯数就是20. 2.如果一个字符表示的数比左边的字符表示的数大,则转化成阿拉伯数就是这个数减去 左边的数. 比如:IX表示的阿拉伯数就是10-1 = 9. ICMI表示的阿拉伯数是:1000-(

整数翻译成英文

1 #include<iostream> 2 #include<string> 3 using namespace std; 4 5 class robot{ 6 string name; 7 string type; //型号 8 public: 9 robot(string name = "xxx",string type = "xxx") : name(name),type(type){ //默认构造函数 10 } 11 void ou

如何将px换成em,px与em区别是什么?

字体单位应该用em而不用px,原因简单来说就是支持IE6下的字体缩放,在页面中按ctrl+滚轮,字体以px为单位的网站没有反应.px是绝对单位,不支持IE的缩放,em是相对单位. 我在调整本blog的时候,发现不仅仅是字体,将行距(line-height),和纵向高度的单位都用em.保证缩放时候的整体性. 怎么将px换成em呢?特地转jorux06年12月的一篇文章,因为中文站用px的太多了,如果你是对代码不敏感的纯设计师,可以向技术人员或者页面制作人员请教: em是何物? em指字体高,任意浏

转:js小技巧 ,将彻底屏蔽鼠标右键,可用于Table ,取消选取、防止复制,IE地址栏前换成自己的图标

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键<table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body onselectstart="return false"> 取消选取.防止复制 3. onpaste="return false" 不

mysql5.5换成mysql8.0

由于在建表钟发现有些语句就是录不进去,研究发现是因为5.5版本过低导致,就想换到5.7版本,结果一看8.0都出了,据官方说明8.0要比5系列快2倍网上,遂直接换成8.0了,不过这个过程真的心累. 1.卸载 首先把MYSQL文件目录下的mysql5.5中的data文件放到其他地方保存,然后通过360等软件卸载就行了(我之前用的是安装版的),压缩版的写在请点击这里 2.下载 解压缩 到mysql官网 http://dev.mysql.com/downloads/mysql/ 下载mysql 上面的为

delphi 怎么将一个文件流转换成字符串(String到流,String到文件,相互转化)

//from   http://kingron.myetang.com/zsfunc0d.htm (*//   标题:充分利用pascal字符串类型   说明:和PChar不同,string可以保存#0字符在其中;示例文件.内存流字符串之间转换   设计:Zswang   日期:2002-01-25   支持:[email protected]   //*) ///////Begin   Source   function   StringToFile(mString:   string;  

php 把数字1-1亿换成汉字表述,例如 150 转成 一百五十

直接上实例 写到 千亿上了. /** * @author  ja颂  * 把数字1-1亿换成汉字表述,如:123->一百二十三 * @param [num] $num [数字] * @return [string] [string] */function numToWord($num){ $chiNum = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九'); $chiUni = array('','十', '百', '千', '万',