模拟题。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std; string num[]=
{
"ling","yi","er","san","si",
"wu","liu","qi","ba","jiu"
};
string tmp="";
string ans="";
string s=""; string f(string TMP)
{
if(TMP[]==''&&TMP[]==''&&TMP[]==''&&TMP[]=='') return "ling";
string t="";
int p;
for(int i=TMP.length()-;i>=;i--)
if(TMP[i]!='') {p=i; break;} for(int i=;i<=p;i++) t=t+TMP[i]; if(t=="" ) return "ling"; if(t.length()==) return "ling";
if(t.length()==) return num[t[]-''];
if(t.length()==)
{
if(t[]=='') return num[t[]-'']+" Shi";
return num[t[]-'']+" shi "+num[t[]-''];
}
if(t.length()==)
{
if(t[]==''&&t[]=='') return num[t[]-'']+" Bai";
if(t[]==''&&t[]!='') return num[t[]-'']+" Bai "+num[t[]-'']+" Shi";
if(t[]!=''&&t[]=='') return num[t[]-'']+" Bai ling "+num[t[]-''];
if(t[]!=''&&t[]!='') return num[t[]-'']+" Bai "+num[t[]-'']+" Shi "+num[t[]-''];
}
if(t.length()==)
{
if(t[]==''&&t[]==''&&t[]=='') return num[t[]-'']+" Qian";
if(t[]!=''&&t[]==''&&t[]=='') return num[t[]-'']+" Qian ling "+num[t[]-''];
if(t[]==''&&t[]!=''&&t[]=='') return num[t[]-'']+" Qian ling "+num[t[]-'']+" Shi";
if(t[]!=''&&t[]!=''&&t[]=='') return num[t[]-'']+" Qian ling "+num[t[]-'']+" Shi "+num[t[]-''];
if(t[]==''&&t[]==''&&t[]!='') return num[t[]-'']+" Qian "+num[t[]-'']+" Bai";
if(t[]!=''&&t[]==''&&t[]!='') return num[t[]-'']+" Qian "+num[t[]-'']+" Bai ling "+num[t[]-''];
if(t[]==''&&t[]!=''&&t[]!='') return num[t[]-'']+" Qian "+num[t[]-'']+" Bai "+num[t[]-'']+" Shi";
if(t[]!=''&&t[]!=''&&t[]!='') return num[t[]-'']+" Qian "+num[t[]-'']+" Bai "+num[t[]-'']+" Shi "+num[t[]-''];
}
} int main()
{
cin>>tmp;
int len=tmp.length();
for(int i=;i<len/;i++)
swap(tmp[i],tmp[len-i-]); if(tmp[tmp.length()-]=='-') ans=ans+"Fu "; for(int i=;i<tmp.length();i++)
{
if(tmp[i]=='-') continue;
else s=s+tmp[i];
} if(s.length()==)
{
string s1,s2,s3; string g="";
g=g+s[]+s[]+s[]+s[];
s2=f(g); g="";
g=g+s[]+s[]+s[]+s[];
s3=f(g); ans=ans+num[s[s.length()-]-'']+" Yi"; if(s2=="ling") {}
else
{
ans=ans+" ";
if(s[]=='') ans=ans+"ling ";
ans=ans+s2;
ans=ans+" Wan";
} if(s3=="ling"){}
else
{
ans=ans+" ";
if(s[]=='') ans=ans+"ling ";
ans=ans+s3;
}
}
else if(s.length()>=&&s.length()<=)
{
string s2;
string s3; int len=s.length();
for(int i=len;i<;i++) s=s+''; string g;
g=g+s[]+s[]+s[]+s[];
s2=f(g); g="";
g=g+s[]+s[]+s[]+s[];
s3=f(g); ans=ans+s2;
ans=ans+" Wan"; if(s3=="ling"){}
else
{
ans=ans+" ";
if(s[]=='') ans=ans+"ling ";
ans=ans+s3;
} }
else if(s.length()<=)
{
string s3; int len=s.length();
for(int i=len;i<;i++) s=s+''; string g;
g=g+s[]+s[]+s[]+s[];
s3=f(g); ans=ans+s3;
} cout<<ans<<endl; return ;
}

PAT (Advanced Level) 1082. Read Number in Chinese (25)的更多相关文章

  1. PTA (Advanced Level)1082.Read Number in Chinese

    Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chinese ...

  2. 【PAT甲级】1082 Read Number in Chinese (25 分)

    题意: 输入一个九位整数,输出它的汉字读法(用拼音表示). trick: 字符串数组""其实会输出一个空格,而不是什么都不输出,导致测试点0和4格式错误. AAAAAccepted ...

  3. PAT (Advanced Level) 1024. Palindromic Number (25)

    手动模拟加法高精度. 注意:如果输入数字的就是回文,这个时候输出0步. #include<iostream> #include<cstring> #include<cma ...

  4. PAT (Advanced Level) Practise - 1094. The Largest Generation (25)

    http://www.patest.cn/contests/pat-a-practise/1094 A family hierarchy is usually presented by a pedig ...

  5. 1082. Read Number in Chinese (25)

    题目如下: Given an integer with no more than 9 digits, you are supposed to read it in the traditional Ch ...

  6. 1082. Read Number in Chinese (25)-字符串处理

    题意就是给出9位以内的数字,按照汉子的读法读出来. 读法请看下方的几个例子: 5 0505 0505 伍亿零伍佰零伍万零伍佰零伍 5 5050 5050 伍亿伍仟零伍拾万伍仟零伍拾  (原本我以为这个 ...

  7. 1082 Read Number in Chinese (25分)

    // 1082.cpp : 定义控制台应用程序的入口点. // #include <iostream> #include <string> #include <vecto ...

  8. PAT (Advanced Level) 1102. Invert a Binary Tree (25)

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

  9. PAT (Advanced Level) 1098. Insertion or Heap Sort (25)

    简单题.判断一下是插排还是堆排. #include<cstdio> #include<cstring> #include<cmath> #include<ve ...

随机推荐

  1. 设计一种前端数据延迟加载的jQuery插件(2)

    背景 最近看到很多网站都运用到了一种前端数据延迟加载技术,包括淘宝,新浪网等等,这样做的目的可以使得一些未显示的图片随 着滚动条的滚动进行延迟显示. 好处显而易见,可以减少前端对于图片的Http请求, ...

  2. JS模拟窗口

    摘自于网络:http://www.cnblogs.com/joinger/articles/1297228.html <!DOCTYPE html PUBLIC "-//W3C//DT ...

  3. Android实现GIF图片解码与播放

    Android实现GIF图片解码与播放 如何在Android中播放GIF图片呢?如果直接按以前的方法,分解图片,可能相对比较麻烦. 今天给大伙介绍一种新的方式,构造自己的Android图片解码帮助类, ...

  4. DHCPv6

    SLAAC(RFC4862)(StatelessAddressAutoconfiguration),无状态自动配置 IT网,http://www.it.net.cn DHCPv6包含以下两种形式: n ...

  5. 在windows系统用odbc连接

    当连接的数据出现失败时,出现数据库别名仍然存在,但还是要用这个别名重新建立连接 在windows客户端,用输入db2cmd输入c:\Users\yexuxia>db2 list db direc ...

  6. robot framework -记录关键字

    1.set value if (当条件满足时,进行变量赋值) 2.focus (将焦点定在制定的元素) 3.win close +title(关闭制定title) 4.get list items  ...

  7. HDU ACM 1495 非常可乐(广搜BFS)

    非常可乐 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissi ...

  8. JS中获取页面单选框radio和复选框checkbox中当前选中的值

    单选框:单选框的name值全部相同 页面有一组单选框的元素<td><input type="radio name="radioid">满意< ...

  9. Python基础学习3---数据结构

    数据结构 数据结构基本上就是---他们是可以处理数据的结构或者说他们是用来存储一组相关数据的. 在python中有三种内建的数据结构-----列表.元组和字典 列表(list) 列表就像是我们要去超市 ...

  10. scala模式匹配与样例类

    样本类:添加了case的类便是样本类.这种修饰符可以让Scala编译器自动为这个类添加一些语法上的便捷设定.如下: 1.添加与类名一致的工厂方法.也就是说,可以写成Var("x") ...