
比较简单的一题主要是测点不坑都是正常的规范的数字。格式控制用了一个小trick所有的单词后都加了一个空格然后用string ans来保存。输出时只输出ans前 ans.size()-1 个字符即可这样最后就不会有空格了。下面贴上AC代码#includestdio.h #includestring #includestring.h using namespace std; string digits[10] { ling,yi,er,san,si,wu,liu,qi,ba,jiu }; string unit[6] { ,Shi ,Bai ,Qian ,Wan ,Yi }; int main() { char input[11]; string ans ; scanf(%s, input); if (strlen(input) 1 input[0] 0) { ans ling ; } else { for (int i 0; i strlen(input); i) { if (input[i] -) { ans Fu ; continue; } else if (input[i] ! 0) { if (i 0 input[i - 1] 0) { ans ling ; } ans digits[input[i] - 0] unit[(strlen(input) - i - 1) % 4]; } if ((strlen(input) - i - 1) % 4 0 i ! strlen(input) - 1) { ans unit[(strlen(input) - i - 1) / 4 3]; } } } printf(%s, ans.substr(0, ans.size() - 1).c_str()); return 0; }