Time Limit:1000MS  Memory Limit:65535K

题型: 编程题   语言: 无限制

描述

在那个风起云涌的SCAU ACM里,有两位人生赢家,他们分别是大洲Takio神和Blue神。      (尤其是blue神。)
由于这两位人生赢家代码能力强,才高八斗,学富五车,英俊潇洒,玉树临风,独步江湖,呼风唤雨,妹子纷至沓来。
而小邪由于太渣了,只能默默地帮他们记录下他们换了多少个妹子。
以上背景纯属题目需要,其实两位大神是很专情的。
终于有一天,小邪计算出他们身边妹子的总数n,想要给Takio神和Blue神。
但是Takio神和Blue神的邮箱是使用英文的,而小邪的英语又很渣,于是无法将n翻译成英语发过去。
但是,小邪想到了你——聪明的14级新生,向你寻求答案。 出题人:K·小邪

输入格式

第一行是一个整数t(t <= 100),代表样例个数
对于每个样例有一个整数n(0<=n<=2000000000)

输出格式

对于每个n,输出其英文表现形式,具体格式见样例输出

输入样例

4
5
121
1010
1008611

输出样例

five
one hundred and twenty-one
one thousand and ten
one million, eight thousand, six hundred and eleven

Hint

输出不一定符合英语规范,但是要符合Sample的规范
对于一个n>1000,若n%1000 >= 100(%代表取余操作)且不为0,且在n%1000对应的英文输出前(如果存在)用","相连而不是"and" 需要用到的英文单词为(不包括引号):
"zero","one","two","three","four","five","six","seven","eight","nine"
"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"
"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"
"hundred","thousand","million","billion"
分别代表
0,1,2,3,4,5,6,7,8,9
10,11,12,13,14,15,16,17,18,19
20,30,40,50,60,70,80,90
100,1000,1000000,1000000000
#include<stdio.h>
#include<string.h>
void go(void);
int a[],k,num;
int leap,leap1,leap2,leap3,leap4,leap5,leap6,leap7,leap8,leap9,leap10;
char str[][]=
{
"zero","one","two","three","four","five","six",
"seven","eight","nine","ten","eleven","twelve",
"thirteen","fourteen","fifteen","sixteen",
"seventeen","eighteen","nineteen","twenty"
}; int main()
{
int i,k,T; strcpy(str[],"thirty");
strcpy(str[],"forty");
strcpy(str[],"fifty");
strcpy(str[],"sixty");
strcpy(str[],"seventy");
strcpy(str[],"eighty");
strcpy(str[],"ninety");
scanf("%d",&T);
while(T--)
{
memset(a,,sizeof(a));
leap=leap1=leap2=leap3=leap4=leap5=leap6=leap7=leap8=leap9=leap10=;
scanf("%d",&num);
i=;
k=num;
if(num>&&num%>=) leap=;
while(k!=)
{
a[i++]=k%;
k=k/;
}
k=i-;
if(k==||k==) {printf("%s\n",str[num]);continue;}
if(k==) {if(num>&&num<=||num%==) printf("%s\n",str[num]);
else printf("%s-%s\n",str[num-num%],str[num%]);continue;}
go();
printf("\n"); }
return ;
}
void go(void)
{
int temp1,temp2,temp3; if(a[]) {printf("%s billion",str[a[]]);leap10=;}
if((leap&&k>=)||(leap10&&a[]!=)||(leap10&&a[]!=)||(leap10&&a[]!=)||(leap10&&a[]!=)||(leap10&&a[]!=)||(leap10&&a[]!=))
printf(", "); if(a[]) {printf("%s hundred",str[a[]]);leap9=;}
temp1=a[]*+a[];
if(leap9&&temp1!=) printf(" and ");
if(temp1!=)
{
if((temp1>&&temp1<=)||temp1%==) printf("%s",str[temp1]);
else printf("%s-%s",str[temp1-temp1%],str[temp1%]);
leap7=;
}
if(leap9||leap7) printf(" million");
if((leap&&k>=)||((leap9&&a[]!=)||(leap7&&a[]!=))||((leap9&&a[]!=)||(leap7&&a[]!=))||((leap9&&a[]!=)||(leap7&&a[]!=))) printf(", "); if(a[]) {printf("%s hundred",str[a[]]);leap6=;}
temp2=a[]*+a[];
if(leap6&&temp2!=) printf(" and ");
if(temp2!=)
{
if((temp2>&&temp2<=)||temp2%==) printf("%s",str[temp2]);
else printf("%s-%s",str[temp2-temp2%],str[temp2%]);
leap4=;
}
if(leap6||leap4) printf(" thousand");
if(leap) printf(", ");
if(a[]) {printf("%s hundred",str[a[]]);leap3=;}
temp3=a[]*+a[];
if((leap3&&temp3!=)||(a[]==&&temp3!=)) printf(" and ");
if(temp3!=)
{
if((temp3>&&temp3<=)||temp3%==) printf("%s",str[temp3]);
else printf("%s-%s",str[temp3-temp3%],str[temp3%]);
}
}

F Takio与Blue的人生赢家之战的更多相关文章

  1. JavaScript Array

    1.常用方法 // 数组构造 var a = new Array(20); // 长度为20的数组 var b = new Array('red', 'blue', 'white'); var c = ...

  2. iOS - 二维码扫描和应用跳转

    序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦, ...

  3. gradient color

    http://www.cnblogs.com/YouXianMing/p/3793913.html layer 不能自动autolay, 只能在viewDidLayout里面设置宽度 - (void) ...

  4. javaSE第二十五天

    第二十五天    399 1:如何让Netbeans的东西Eclipse能访问.    399 2:GUI(了解)    399 (1)用户图形界面    399 (2)两个包:    399 (3) ...

  5. C语言学习资料(转载)

    ◆经典C源程序100例:http://post.baidu.com/f?kz=8618367 ◆时钟的驻留程序:http://post.baidu.com/f?kz=10822377 ◆数据结构暨若干 ...

  6. UI:tomcat(说话小程序)、相框动画、UISgmentcontrol、UISwitch

    UISegmentedControl 分段控件 //1. UISegmentedControl 分段控件 (就是一个一个的按钮) //分段显示的标题是以一个数组存储的 NSArray * titles ...

  7. 《JavaScript高级程序设计》心得笔记-----第二篇章

    第五章 9.Function函数 1)         函数内部有两个特殊的对象: (1)       arguments(主要用于保存函数参数,有一个属性callee,这是一个指针,指向拥有argu ...

  8. JSF 2 radio buttons example

    In JSF, "h:selectOneRadio" tag is used to render a set of HTML input element of type " ...

  9. GUI编程笔记(java)08:GUI通过鼠标移动到按钮上更改背景色案例

    首先我们看看源代码如下: package cn.itcast_06; import java.awt.Button; import java.awt.Color; import java.awt.Fl ...

随机推荐

  1. WhatsApp值160亿美元,腾讯推大众点评微信支付!

    腾讯前脚刚入股大众点评,FB后脚就将斥资160亿美元收购WhatsApp(40亿美元现金和120亿美元股票). 为什么WhatsApp值160亿美元?这是什么东东呢?WhatsApp这款服务可以帮助用 ...

  2. 360双击ctrl搜索可能会与firefox快捷键冲突

    最近使用火狐浏览器时有好几次要在网页上的对话框输入文字时出现问题,按下字母键直接跳出了firefox菜单选项,用鼠标重新定位到输入位置再打还是不行,照样会弹出菜单提示,如下图,这可能是有什么快捷键冲突 ...

  3. upc.2219: A^X mod P(打表 && 超越快速幂(in some ways))

    2219: A^X mod P Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 417  Solved: 68 [Submit][Status][Web ...

  4. poj1013.Counterfeit Dollar(枚举)

    Counterfeit Dollar Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 415  Solved: 237 Description Sally ...

  5. Linux下的网络管理工具—OpenNMS

    导读 OpenNMS的是一个运营商级别的,高度集成的,开放源码的平台,用于构建网络监控解决方案.OpenNMS有两个发行版:Meridian and Horizon.使用Meridian是可取的,对企 ...

  6. rails命令避免直接操作数据库

    文章是从我的个人主页上粘贴过来的, 大家也可以访问我的主页 www.iwangzheng.com 今天在数据库里新增人员的时候出了点小问题,有人员重复了,以至于要删除一些,大师和pp指导完成的. $r ...

  7. c# 继承,多态,new /overrid 区别, 引用父类的方法

    好久没碰c#了,偶尔需要制作点小工具.为了一个灵活的架构设计,需要对继承/多态有比较深刻的理解. 不料忘得差不多了,好吧,再来回忆下.直接上代码了,如下: using System; using Sy ...

  8. [颓废] 改某人的WebGL light mapping demo并9xSSAA

    渲染图(4k) 链接: http://pan.baidu.com/s/1bnB4Wqz 密码: 8839 2px高斯模糊+立方缩小AA:  链接: http://pan.baidu.com/s/1mg ...

  9. CI邮箱中SMTP的一些端口

    介绍其他几个常用邮箱设置,并以网易126邮箱为例,发图.        一.新浪邮箱(1)新浪邮箱自08年6月分服务器被攻击后开始对pop取件频率进行了严格**,同时新注册的用户需要手动才能开通pop ...

  10. 20.python笔记之装饰器

    装饰器 装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加相应操作. 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插 ...