华为oj_学英语_改
来源:互联网 发布:线程私有数据 编辑:程序博客网 时间:2024/06/05 15:05
#include <iostream>#include <string>using namespace std;string s[]={"billion","million","thousand","hundred"};string s1[]={"zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};string s2[]={"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};string c=" ";string parse3(int num){ string result; int t; int flag=0; if(num>999) { t=num/1000; result+=(s1[t]+c+s[2]); flag=1; num%=1000; } if(num>99) { t=num/100; if(flag==1) result+=c; result+=(s1[t]+c+s[3]); flag=1; num%=100; } if(num>19) { t=num/10; if(flag==1) result+=" and "; result+=s2[t-2]; t=num%10; if(t!=0) result+=c+s1[t]; } else { if(flag==1&&num!=0) result+=" and "; if(num!=0) result+=s1[num]; } return result;}string parse(long int num){ string result; int t; int flag=0; if(num>=1000000000) { t=num/1000000000; result+=s1[t]; result+=c+s[0]; flag=1; num%=1000000000; } if(num>=1000000) { if(flag==1) result+=c; t=num/1000000; result+=parse3(t); result+=c+s[1]; flag=1; num%=1000000; } if(num>=1000) { if(flag==1) result+=c; t=num/1000; result+=parse3(t); result+=c+s[2]; flag=1; num%=1000; } if(num>0) { if(flag==1) result+=c; result+=parse3(num); } return result;}int main(){ long int num; while(cin>>num) { if(num>=10000000000||num<=0) cout<<"error"<<endl; else cout<<parse(num)<<endl; } return 0;}之前的有错误是因为十亿、百万、千后面不需要加and。
0 0
- 华为oj_学英语_改
- 华为oj_学英语
- 华为oj 学英语
- 华为OJ:学英语
- 华为OJ(学英语)
- 华为在线测试--学英语
- 华为OJ之学英语
- 【华为OJ】【092-学英语】
- 华为机试---学英语
- 华为OJ 初级:学英语
- 华为oj初级 学英语
- 华为oj_合唱队
- 华为oj_图片整理
- 华为oj_蛇形矩阵
- 华为oj_字符串加密
- 华为oj_称砝码
- 华为oj_放苹果
- 华为oj_字符串通配符
- USACO 2.3 Longest Prefix
- 弱校联萌第一场C 栈+KMP
- c/c++内存对齐详解
- XML文件系列一之XML结点和元素的区别
- Odoo9发行说明
- 华为oj_学英语_改
- 关于looper,handle,messageQuerry
- 如何制作一面智能镜子
- 库函数perror和strerror的使用
- 转载:iOS开发系列之UITableView实例全面解析
- 字符串依据元素分组 Trie+hash POJ 2408 Anagram Groups
- 零基础学python-19.7 扩展生成器函数
- Node express框架初试
- 使用命令行安装安卓应用