//已AC
//3 points not passed...是因为‘0’
#include<iostream> #include<cstring> //#include<algorithm> using namespace std; char num[11]; char chinese_digit[10][5] = { "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" }; char chinese_unit[10][5] = { "Yi", "Qian", "Bai", "Shi", "Wan", "Qian", "Bai", "Shi" }; bool first = true; int main(){ cin.getline(num, 11); int len = strlen(num); if (num[0] == '-'){ cout << "Fu"; for (int i = 0; i < len; i++){ num[i] = num[i + 1]; } len--; first = false; } if (num[0] == '0'){ cout << "ling"; return 0; } int i = 9; while (i > 0){ if ((len - i) >= 0){ if (num[len - i] != '0'){ if (!first){ cout << " " << chinese_digit[num[len - i] - '0']; } else{ cout << chinese_digit[num[len - i] - '0']; first = false; } if (9 - i < 8){ cout << " " << chinese_unit[9 - i]; } } else{ if (isdigit(num[len - i + 1]) && num[len - i + 1] != '0'&&i != 5) cout << " " << chinese_digit[num[len - i] - '0']; if (i == 5) cout << " Wan"; } } --i; if (i <= 4) break; } while (i > 0){ if ((len - i) >= 0){ if (num[len - i] != '0'){ if (!first){ cout << " " << chinese_digit[num[len - i] - '0']; } else{ cout << chinese_digit[num[len - i] - '0']; first = false; } if (9 - i < 8){ cout << " " << chinese_unit[9 - i]; } } else{ if (isdigit(num[len - i + 1]) && num[len - i + 1] != '0') cout << " " << chinese_digit[num[len - i] - '0']; } } --i; } }