1082. Read Number in Chinese (25)
来源:互联网 发布:认知无线电网络 编辑:程序博客网 时间:2024/05/16 08:32
说实话,这道题特殊情况有点多,牛客网的测试点比PAT要严的多
#include<iostream>#include<string>#include<cctype>using namespace std;string s[6] = {"Fu","Yi","Shi","Bai","Qian","Wan"};string digit[10] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };string chuli(string str)//给一个小于5位的字符串,输出中文形式{ string x; int t = str.size()-1; while (str[t] == '0') if(--t==-1) return digit[0]; while (t >= 0) { if (str[t] == '0' && str[t + 1] == '0') { t--;continue; } if (t == str.size()-1||str[t]=='0') x = digit[str[t] - '0']+" "+x; else x = digit[str[t] - '0'] +" "+ s[str.size()-t] + " " + x; t--; } if (x.back() == ' ')x.pop_back(); return x;}int main(){ string resault; string all; cin >> all; if (all[0] == '-') { resault = s[0] + " ";all.erase(0, 1); }//负号先处理好 if (all.size() < 5) resault += chuli(all);//小于5位的情况 else if (all.size() < 9) {//5-8位的情况 resault += chuli(string(all, 0, all.size() - 4)) + " " + s[5];//xxx万 if (string(all, all.size() - 4, 4) != "0000")resault += " " + chuli(string(all, all.size() - 4, 4));//当万以内不为0时 } else { resault += digit[all[0] - '0'] + " " + s[1];//xxx亿 if (string(all, 1, 4) != "0000") resault += " " + chuli(string(all, 1, 4)) + " " + s[5];//xxx亿xxx万 else if(all[5]!='0') resault += " " + digit[0];//xxx亿零xxx if (string(all, 5, 4) != "0000") resault += " " + chuli(string(all, 5, 4)); } cout << resault << endl;}
0 0
- 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)
- 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)
- 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)
- 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)
- win7-32位系统,不能运行flash,解决方法。
- Linux最常用的20条命令
- Menu菜单的使用
- 《Qt》part 9 Qt5.5中文乱码解决方法汇总
- javascript--1.缓动动画>>以轮播图为例
- 1082. Read Number in Chinese (25)
- Electron加密打包文件
- HTTPS
- 摇一摇:仿微信效果
- 浅谈HTTP中Get与Post的区别
- Python抓取第一网贷中国网贷理财每日收益率指数
- Elasticsearch Java API(十一)--聚合(aggregations)
- java 多线程注意事项
- C#mir2(1)