Read Number in Chinese (25)
来源:互联网 发布:c语言 设备端接入 编辑:程序博客网 时间:2024/06/09 11:53
题目描述
Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chinese way. Output "Fu" first if it is negative. For example, -123456789 is read as "Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu". Note: zero ("ling") must be handled correctly according to the Chinese tradition. For example, 100800 is "yi Shi Wan ling ba Bai".
输入描述:
Each input file contains one test case, which gives an integer with no more than 9 digits.
输出描述:
For each test case, print in a line the Chinese way of reading the number. The characters are separated by a space and there must be no extra space at the end of the line.
输入例子:
-123456789
输出例子:
Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu
这道题看似简单,实则非常困难,需要填的坑特别多。
我的代码:
(注:在牛客网上十九个测试点都通过了。但是在PAT甲级真题网上还有一个测试点尚未通过)
#include<iostream>#include<vector>#include<string>#include<algorithm>using namespace std;vector<char>v;vector<char>::iterator it,ot;char a[20];int i,j=0,k=0,flag=0,n;string b[20],c[9]={"yi","er","san","si","wu","liu","qi","ba","jiu"};int main(){ gets(a); n=atoi(a); for(i=0;a[i];i++) v.push_back(a[i]); reverse(v.begin(),v.end()); for(it=v.begin();it!=v.end();it++) { j++; if(*it=='0') { if(n==0) b[k++]="ling"; else if(flag==0) continue; else if(j==5) { for(ot=it;ot!=v.end();ot++) { j++; if(*ot!='0') break; } if(j<=9) { flag=0; b[k++]="Wan"; } j=5; } else { flag=0; b[k++]="ling"; } } else if(*it=='-') b[k++]="Fu"; else { flag=1; if(j==2 || j==6) b[k++]="Shi"; else if(j==3 || j==7) b[k++]="Bai"; else if(j==4 || j==8) b[k++]="Qian"; else if(j==5) b[k++]="Wan"; else if(j==9) b[k++]="Yi"; b[k++]=c[*it-'0'-1]; } } while(k-- && k>=1) cout<<b[k]<<" "; cout<<b[0]<<endl; return 0;}
阅读全文
0 0
- Read Number in Chinese (25)
- PAT 1082. Read Number in Chinese (25)
- pat 1082. Read Number in Chinese (25)
- PAT 1082. Read Number in Chinese (25)
- PAT 1082. Read Number in Chinese(25)
- PAT1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 1002.Read Number in Chinese (25)
- A1082. Read Number in Chinese (25)
- PAT 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 【PAT】1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 数据库中事务、存储过程、函数、同义词的使用
- javascript线程解释(setTimeout,setInterval你不知道的事)
- [leetcode] 257. Binary Tree Paths
- 满二叉树思想的应用------小猴子下落
- fstab文件详解
- Read Number in Chinese (25)
- linux下文件权限
- HDFS Ozone整体概述
- Linux不重启识别新添加的磁盘
- CA和证书
- CCF CSP 2015年03月第4题 网络延迟(求树的直径)
- 使用nmcli配置网络
- hibernate数据增删改查汇总
- 回形针填数