PAT A.1082. Read Number in Chinese (25)
来源:互联网 发布:道亨软件使用说明 编辑:程序博客网 时间:2024/05/28 15:07
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 <stdio.h>#include <math.h>#include <malloc.h>#include <string.h>
char *num[10] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};char *danw[4] = {"", "Shi", "Bai", "Qian"};
int flag_f = 0, flag_i = 0;int flag = 0;
void read(char a[]){ int alen; alen = strlen(a); for(int i = 0; i < alen; i++){ if(a[i] == '0'){ flag_i = 1; }else{ if(flag_i == 1 && flag_f == 1){ printf(" ling"); flag_i = 0; } flag_f = 1; if(flag == 1){ printf(" %s", num[a[i] - '0']); }else{ printf("%s", num[a[i] - '0']); flag = 1; } if(i != alen - 1){ printf(" %s", danw[alen - 1 - i]); } if(i == alen - 1) flag_i = 0; } }}
int main(){ char in[11]; scanf("%c", in); if(in[0] == '-'){ printf("Fu"); scanf("%s", in); flag = 1; }else{ scanf("%s", &in[1]); } int in_d; sscanf(in, "%d", &in_d); if(in_d == 0){ printf("ling\n"); return 0; }else{ if(in_d >= 100000000){ if(flag == 1){ printf(" %s Yi", num[in_d / 100000000]); }else{ printf("%s Yi", num[in_d / 100000000]); flag = 1; } flag_f = 1; in_d %= 100000000; int in_d1 = in_d / 10000, in_d2 = in_d % 10000; char d1[5], d2[5]; if(in_d1 != 0){ sprintf(d1, "%04d", in_d1); read(d1); printf(" Wan"); } if(in_d2 != 0){ sprintf(d2, "%04d", in_d2); read(d2); } }else if(in_d >= 10000){ int in_d1 = in_d / 10000, in_d2 = in_d % 10000; char d1[5], d2[5]; if(in_d1 != 0){ sprintf(d1, "%d", in_d1); read(d1); printf(" Wan"); } if(in_d2 != 0){ sprintf(d2, "%04d", in_d2); read(d2); } }else{ int in_d2 = in_d % 10000; char d2[5]; sprintf(d2, "%d", in_d2); read(d2); } } printf("\n"); return 0;
}
- PAT A.1082. Read Number in Chinese
- PAT A 1082. Read Number in Chinese (25)
- PAT-A-1082. Read Number in Chinese (25)
- PAT A.1082. Read Number in Chinese (25)
- PAT A 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)
- PAT:1082. Read Number in Chinese (25)
- 1082. Read Number in Chinese (25) PAT
- PAT 1082. Read Number in Chinese (25)
- PAT 1082. Read Number in Chinese
- 【PAT】1082. Read Number in Chinese
- 【PAT】A1082. Read Number in Chinese (25)
- PAT(Advance) 1082. Read Number in Chinese (25)
- hibernate和spring整合之session、hibernateTemplate、Criteria对象对数据库的操作
- main方法启动jetty java嵌入式web服务器jetty的使用
- hibernate-5.0.7+struts-2.3.24+spring-4.2.4三大框架整合
- YII2.0 使用UUID 生成唯一字符串
- linux系统延迟及定时机制
- PAT A.1082. Read Number in Chinese (25)
- Java中的equals和==
- JAVA :在给定一个数组中,可以取得多个连续的子串。在众多子串中,求各元素和为最大值的连续子串!
- A*Pathfinding Project学习之【2】插件的使用
- Java多线程探究-多线程安全问题
- java 文件copy
- 【C语言】操作符描述,示例,优先级
- Accelerated C++<4-6>
- 关于 Android 中的 Palette 类的使用案例:色彩自适应的 Toolbar