PAT 甲级 A1082 (2019/02/14) NULL(12/25)

 1 #include<cstdio>
 2 #include<cstring>
 3 char strnumber[16][5] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu", "Ge", "Shi", "Bai", "Qian", "Wan", "Yi"};
 4 int main(){
 5     char str[16];
 6     scanf("%s", str);
 7     int len = strlen(str);
 8     int flag = 0;
 9     if(str[0] == ‘-‘) {
10         printf("Fu");
11         flag = 1;
12     }
13     //8132345680080898
14     int Data[100], top = 0, start1, start2, start3, start4;
15     start1 = start2 = start3 = start4 = 10;
16     int iswan, isqian, isyi, iswanyi;
17     iswan = isqian = isyi = iswanyi = 0;
18     for(int i = len-1; flag ? i > 0 : i >= 0; i--){
19         if(len == 1){
20             Data[top++] = str[i]- ‘0‘;
21         }else if(i >= len - 4 && i <= len - 1){
22             Data[top++] = start1++;
23             Data[top++] = str[i] - ‘0‘;
24         }else if(i >= len - 8 && i <= len - 5){
25             if(iswan == 0){
26                 Data[top++] = 14;
27                 iswan = 1;
28             }
29             Data[top++] = start2++;
30             Data[top++] = str[i] - ‘0‘;
31         }else if(i >= len - 12 && i <= len - 9){
32             if(isyi == 0){
33                 Data[top++] = 15;
34                 isyi = 1;
35             }
36             Data[top++] = start3++;
37             Data[top++] = str[i] - ‘0‘;
38         }else if(i >= len - 16 && i <= len - 13){
39             if(iswanyi == 0){
40                 Data[top++] = 14;
41                 iswanyi = 1;
42             }
43             Data[top++] = start4++;
44             Data[top++] = str[i] - ‘0‘;
45         }
46     }
47     int sign = 0;
48     //printf("top = %d\n", top);
49     for(int i = top-1; i > 0; i = i - 1){
50         if(Data[i] != 10){
51             if(Data[i] == 0){
52 //                sign++;
53 //                if(sign>2){
54 //                    printf(" %s", strnumber[Data[i]]);
55 //                }
56                 i = i - 1;
57                 continue;
58             }
59             if(i != top - 1 || str[0] == ‘-‘){
60                 printf(" %s", strnumber[Data[i]]);
61             }else{
62                 printf("%s", strnumber[Data[i]]);
63             }
64         }
65     }
66     return 0;
67 }
68 /*
69         千万亿 百万亿 十万亿 万亿 千亿 百亿 十亿 亿      千万 百万 十万 万 千 百 十 个
70          234    134    034    34   24   14   04   4       23   13   03   3  2  1  0
71         8132 3456 8008 0898
72         ba Qian yi Bai san Shi er Wan
73         san Qian si Bai wu Shi liu Yi
74         ba Qian ling ba Wan
75         ling ba Bai jiu Shi ba
76         8132345680080898
77     */ 

原文地址:https://www.cnblogs.com/zjsaipplp/p/10415840.html

时间: 2024-07-30 16:50:16

PAT 甲级 A1082 (2019/02/14) NULL(12/25)的相关文章

PAT 甲级 A1082 (2019/02/14)13/25

#include<cstdio> #include<cstring> char strnumber[16][5] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu", "Ge", &

PAT 甲级 A1016 (2019/02/23)0/25

#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 1010; int toll[25]; struct Record { char name[25]; int month, dd, hh, mm; bool status; } rec[maxn], temp; bool cmp(Record a, Record b) { int

PAT甲级【2019年3月考题】——A1158 TelefraudDetection【25】

Telefraud(电信诈骗) remains a common and persistent problem in our society. In some cases, unsuspecting victims lose their entire life savings. To stop this crime, you are supposed to write a program to detect those suspects from a huge amount of phone c

2019.02.14

人生呐,要做一个有趣的人,和有趣的人在一起.但有的人自己无趣,却还想对方有趣,唉. 和有趣的人在一起,生活都变得有趣了,比如崔神和小马,看到他们撒狗粮就觉得很甜蜜很好玩,这才是真爱鸭. 今天听妈讲相亲故事,又无奈又无助.确实女生到了一定年龄之后年龄是个bug,再像我们这种没什么姿色与才艺的就更难了,于是一步步往命运屈服,聊着不想聊的天,谈着不想谈的恋爱,形式了所有流程,话语,红包,礼物,唯独缺少了走心.说不出哪里怪,但就是感觉不到温度.或许相亲就是这样吧. 性是人的本性之一,所以大家都喜欢出轨,

【PAT甲级】1098 Insertion or Heap Sort (25 分)

题意: 输入一个正整数N(<=100),接着输入两行N个数,表示原数组和经过一定次数排序后的数组.判断是经过插入排序还是堆排序并输出再次经过该排序后的数组(数据保证答案唯一). AAAAAccepted code: 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 int a[107],b[107]; 5 int c[107][5]; 6 int main(){ 7 ios:

【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)

题意: 输入两个正整数N和K(N<=40000,K<=2500),分别为学生和课程的数量.接下来输入K门课的信息,先输入每门课的ID再输入有多少学生选了这门课,接下来输入学生们的ID.最后N次询问,输入学生的ID输出该学生选了多少们课,输出所选课程的数量,按照递增序输出课程的ID. trick: 第5个数据点出现段错误,把原本以map存学生对应ID再映射vector存储该学生所选课程改成vector嵌套在map内,就没有段错误的问题出现,疑似映射过程中指针漂移??? 代码: #define H

【PAT甲级】1047 Student List for Course (25 分)

题意: 输入两个正整数N和K(N<=40000,K<=2500),接下来输入N行,每行包括一个学生的名字和所选课程的门数,接着输入每门所选课程的序号.输出每门课程有多少学生选择并按字典序输出学生的名字. 代码: #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;string s[40007];vector<string>v[2507];int main(){ ios::sync_

【PAT甲级】1082 Read Number in Chinese (25 分)

题意: 输入一个九位整数,输出它的汉字读法(用拼音表示). trick: 字符串数组""其实会输出一个空格,而不是什么都不输出,导致测试点0和4格式错误. 代码: #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int num[17];string united[17]={"","yi","er","san&qu

PAT甲级题解-1066. Root of AVL Tree (25)

我嗯,这道题比较讨厌,非常难,需要用到马尔科夫随便链.高斯混合复制模型.神经网络还需要用到本人的模拟退火算法进行优化搜索,为了搜索文章避免陷入局部优化,还得用到一些Tabu Search代码比较多写的有点乱七八糟,有的还点长,都贴到laji的网站如了.布料布衣价格上涨,扣子费用降低.这样导致过程很难算,有难度,但还是有点意思的,建议自省反省考虑下,嗯么. #include <iostream> #include <cstdio> #include <algorithm>