PAT (Advanced Level) Practise 1082 Read Number in Chinese (25)
来源:互联网 发布:广州恒大淘宝还合作吗 编辑:程序博客网 时间:2024/05/29 02:40
1082. Read Number in Chinese (25)
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".
Input Specification:
Each input file contains one test case, which gives an integer with no more than 9 digits.
Output Specification:
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.
Sample Input 1:-123456789Sample Output 1:
Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiuSample Input 2:
100800Sample Output 2:
yi Shi Wan ling ba Bai
题意:输出一个数字的中文读法
#include <iostream> #include <cstdio> #include <string> #include <cstring> #include <algorithm> #include <cmath> #include <vector> #include <map> #include <set> #include <queue> #include <stack> #include <functional> #include <climits> using namespace std;#define LL long long const int INF = 0x7FFFFFFF;string a[10] = { "", "Shi", "Bai", "Qian", "Wan", "Shi", "Bai", "Qian", "Yi" };string b[10] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };stack<string>s;void solve(int x){for (int i = 0; x; i++, x /= 10){if (x % 10){ if (i) s.push(a[i]);s.push(b[x % 10]);}else{if (i == 4) { if (x % 10000) s.push(a[i]); }if (s.empty() || s.top() == b[0] || s.top() == a[4]) continue;s.push(b[0]);}}}int main(){int n;while (~scanf("%d", &n)){solve(abs(n));if (n < 0) s.push("Fu");while (!s.empty()){cout << s.top();s.pop();if (!s.empty()) printf(" ");}if (!n) printf("ling");printf("\n");}return 0;}
- PAT (Advanced Level) Practise 1082 Read Number in Chinese (25)
- PAT (Advanced Level) Practise 1082 Read Number in Chinese (25)
- 1082. Read Number in Chinese (25)【字符串处理】——PAT (Advanced Level) Practise
- Pat(Advanced Level)Practice--1082(Read Number in Chinese)
- 【PAT】【Advanced Level】1082. Read Number in Chinese (25)
- PAT (Advanced Level) 1082. Read Number in Chinese (25) 数字转汉字大写
- pat 1082 Read Number in Chinese
- 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)
- 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) PAT
- 【PAT】A1082. Read Number in Chinese (25)
- PAT 1082. Read Number in Chinese (25)
- 1024. Palindromic Number (25) @ PAT (Advanced Level) Practise
- 使用Python开发SQLite代理服务器
- Android 分析android.view.WindowLeaked错误
- 国际化NSLocalizedString(续)
- 使用mybatis实现数据访问
- Android视频硬解稳定性问题探讨和处理
- PAT (Advanced Level) Practise 1082 Read Number in Chinese (25)
- JNI线程
- JZOJ1322. 硬币游戏
- TransE 知识图谱资料整理
- BZOJ1026[windy数]
- Struts2 原理笔记
- JNI头文件详解(三)对象操作
- Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart
- recyclerview完整使用