[C/C++] 1082 Read Number in Chinese(25 分)
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:
-123456789
Sample Output 1:
Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu
Sample Input 2:
100800
Sample Output 2:
yi Shi Wan ling ba Bai
目前測試點0和測試點4格式錯誤,標記下,回頭改
#include<stdio.h>
#include<string.h>
void reverse(char a[]){
int len = strlen (a)-1;
for(int i = 0;i<len/2;i++) {
char t = a[i];
a[i] = a[len-1-i];
a[len-1-i] = t;
}
}
int main(){
char danwei[10][5] ={"","Shi","Bai","Qian","Wan","Shi","Bai","Qian","Yi"};
char duyin[10][5] = {"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char s[15];
fgets(s,15,stdin);
reverse(s);
int len = strlen(s);
for(int i = len -2;i>=0;i--) {
if(s[i] == '-') printf("Fu ");
else {
if(s[i] != '0'&&s[i+1]=='0') {//不為0而且高位為0
printf(" ling %s %s",duyin[s[i]-'0'],danwei[i]);
}else if(s[i]!='0'){//不為0而且高位不為0
if(s[i+1] == '\n') printf("%s %s",duyin[s[i]-'0'],danwei[i]);
else printf(" %s %s",duyin[s[i]-'0'],danwei[i]);
}else {//為0而且高位不為0
if (i == 0 && s[i+1] == '\n') printf("ling");//單獨一個0
else if(i == 4||i ==8) printf(" %s",danwei[i]);//Wan或Yi
else continue;
}
}
}
return 0;
}
相關推薦
PAT (Advanced Level) Practice 1082 Read Number in Chinese (25 分)(C++)(甲級)
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. Outp
[C/C++] 1082 Read Number in Chinese(25 分)
1082 Read Number in Chinese(25 分) Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chin
PAT 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.
PAT (Advanced Level) Practice 1082 Read Number in Chinese (25 分)
有點變態的模擬啊- = #include<cstdio> #include<cstring> using namespace std; const int N=20+5; char ss[N]; char name[][10]={"",""," Shi"
1082 Read Number in Chinese (25 分)字串處理
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 wa
1082. Read Number in Chinese (25)
ret it is tin first cas cat contain main rect Given an integer with no more than 9 digits, you are supposed to read it in the traditional
1082 Read Number in Chinese(字串處理)
1082 Read Number in Chinese (25 分) Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chin
1044 Shopping in Mars (25 分)(連續子序列分割問題)
Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diamond has a value (in Mars dollars M$). When making
1044 Shopping in Mars (25 分)
Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diamond has a value (in Mars dollars M$). When m
PAT (Advanced Level) Practice 1118 Birds in Forest (25 分) 並查集
Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in the same picture belong to the same tree. You are
PAT (Advanced Level) Practice 1118 Birds in Forest (25 分)
並查集 #include<cstdio> #include<algorithm> using namespace std; const int N=1e4+5; int f[N]; int Find(int x) { return f[x]==x
6-2 LCA in BST (25 分)
The lowest common ancestor (LCA) of two nodes u and v in a tree T is the deepest node that has both u and 
爆刷PAT(甲級)——之【1118】 Birds in Forest(25 分)
補發一遍。 題意:好幾張圖畫,每張圖畫上面的鳥,都在一棵樹上。給你好幾幅圖的鳥,根據詢問回答兩隻鳥在不在一顆樹上。 難點:並查集,還是裸的並查集,直接跑就行了。 Code: #include
【笨方法學PAT】1044 Shopping in Mars (25 分)
一、題目 Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diamond has a value (in Mars dollars M$). Whe
1118 Birds in Forest (25 分)【並查集的應用】
1118 Birds in Forest (25 分) Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in the same
PAT (Advanced Level) Practice 1118 Birds in Forest (25 分) 並查集
Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in the same picture belong to the same t
lower_bound_1044 Shopping in Mars (25 分)
1044 Shopping in Mars (25 分) Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diamond has a
1118 Birds in Forest (25 分)(並查集)
Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in the same picture belong to the same tree. You are
PAT 甲級1118 Birds in Forest (25 分)並查集
1118 Birds in Forest (25 分) Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in the same
1118 Birds in Forest (25 分)【並查集的應用】
1118 Birds in Forest (25 分) Some scientists took pictures of thousands of birds in a forest. Assume that all the birds appear in the same