1082. Read Number in Chinese (25)
来源:互联网 发布:淘宝五颗心 编辑:程序博客网 时间:2024/06/05 02:11
#include <iostream>#include <cstdio>#include <vector>using namespace std;char *pron[] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" };inline const char * unit(int i) {if(i == 1000)return " Qian";else if(i == 100)return " Bai";else if(i == 10)return " Shi";return "";}int print(int n, char str[], int pos, int &pd) {if(n > 0 && n < 10000) {for(int tmp = n, i = 1000; ; i /= 10) {int d = tmp/i;if(d) {pos += sprintf(str+pos, "%s %s%s", pd == 0 ? " ling" : "", pron[tmp/i], unit(i));pd = d;}else if(pd >= 0) {pd = 0;}if(i == 1)break;tmp %= i;}}return pos;}int main(int argc, char **argv) {long long n;cin >> n;bool sign = true;if(n < 0) {sign = false;n = -n;}char str[1000] = {};int pos = 0;if(n) {if(!sign) {pos = sprintf(str, "Fu");}int pd = -1;int npos = print(n/100000000LL, str, pos, pd);if(npos > pos) {pos = npos;pos += sprintf(str+pos, " Yi");}n %= 100000000LL;npos = print(n/10000LL, str, pos, pd);if(npos > pos) {pos = npos;pos += sprintf(str+pos, " Wan");}n %= 10000LL;print(n, str, pos, pd);printf("%s\n", str[0] != ' ' ? str : str+1);}else {printf("ling\n");}return 0;}
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)
- java解惑之字符之谜(谜题19)
- Video Device Class Codes
- HTTP Status 500 - Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.Je
- Android画图最基本的三个对象(Color,Paint,Canvas)
- GGS文档的版本管理--概述
- 1082. Read Number in Chinese (25)
- SQLSERVER2014中的新功能
- CAP原理和BASE思想
- JS模拟时钟
- I、P、B帧和PTS,DTS的关系【转载】
- Android 异常解决方法汇总
- linux下安装vsftp
- [大规模并行处理器编程实战]读书笔记_Heterogeneous Parallel Programming_CHAPTER_02
- Android类库打包方法探究(目前看到的最终方案)