Each input file contains one test case, which gives an integer with no more than 9 digits.
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.
-123456789
Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu
from typing import List num = int(input()) dic = { '1': "yi", '2': "er", '3': "san", '4': "si", '5': "wu", '6': "liu", '7': "qi", '8': "ba", '9': "jiu", '0': "ling" } def foo(num_str) -> List[str]: if not num_str: return [] if num_str[0] == "-": # 处理负数 return ["Fu"] + foo(num_str[1:]) if len(num_str) == 9: # 处理九位正数 r1 = [dic[num_str[0]], "Yi"] remainStr = num_str[1:] if int(remainStr) == 0: return r1 elif remainStr[0] == '0': i = 0 while remainStr[i] == '0': i += 1 return r1 + ["ling"] + foo(remainStr[i:]) else: return r1 + foo(remainStr) elif 5 <= len(num_str) <= 8: # 处理五到八位的正数 i = len(num_str) - 1 secP = '' while len(secP) < 4: secP = num_str[i] + secP i -= 1 firP = num_str[:i + 1] if int(secP) == 0: return foo(firP) + ['Wan'] elif secP[0] == '0': i = 0 while secP[i] == '0': i += 1 return foo(firP) + ["Wan", "ling"] + foo(secP[i:]) else: return foo(firP) + ["Wan"] + foo(secP) elif 1 <= len(num_str) <= 4: # 处理1到4位的正数 d = { 4: "Qian", 3: "Bai", 2: "Shi" } if len(num_str) == 1: return [dic[num_str]] else: r1 = [dic[num_str[0]], d[len(num_str)]] remain = num_str[1:] if int(remain) == 0: return r1 elif remain.startswith("0"): i = 0 while remain[i] == "0": i += 1 return r1 + ["ling"] + foo(remain[i:]) else: return r1 + foo(remain) return [] li = foo(str(num)) print(" ".join(li))
a = input() if a == '0': print('ling') else: m = ['Yi','Wan','Ge'] n = [' Qian','',' Shi',' Bai'] p = ['ling','yi','er','san','si','wu','liu','qi','ba','jiu'] if a[0] == '-': q,a = 'Fu ',a[1:] else: q = '' for i in range(len(a),0,-1): m.insert(-((i - 1) // 4 + 1),p[int(a[-i])] + n[i % 4]) i = 0 while i < len(m): if m[i].split()[0] == 'ling': if i == 0 or m[i - 1] == 'ling': del m[i] else: m[i],i = 'ling',i + 1 elif m[i] in ['Yi','Wan','Ge']: if i == 0: del m[i] elif m[i - 1] == 'ling': del m[i - 1] if i == 1 or m[i - 2] in ['Yi','Wan','Ge']: del m[i - 1] i -= 1 else: i += 1 else: i += 1 if 'Ge' in m: del m[-1] print(q + ' '.join(m))