U661323 int64转中文
题目描述
给定一个int64,将其转换为中文数字表示的字符串。
如果你小学没有毕业,不知道中文数字的读法,可以参考以下规则:
- 基本数字:0-9 分别对应 零、一、二、三、四、五、六、七、八、九
- 数位单位:从个位开始,每四位一个单位,分别是 万、亿、兆、京(10^4、10^8、10^12、10^16)
- 读法规则:
- 从最高位开始读,每四位为一段,读出该段的数字和单位(如果该段不为零)。例如,1234567890 可以分为 12,3456,7890 3段,分别读作 "十二亿"、"三千四百五十六万"、"七千八百九十"
- 每段内部的读法:千位、百位、十位、个位
- 千位:如果不为零,读作 "X千"
- 百位:如果不为零,读作 "X百"
- 十位:如果不为零,读作 "X十",特别的,如果在整个数字的最前面时,那应当读作 "十" 而不是 "一十"。仅当在「整个数字的最前面时」才读作 "十",其他位置的 "10" 都应读作 "一十"。例如10010应读作 "一万零一十",而不是 "一万零十"。
- 个位:如果不为零,读作 "X"
- 零的处理:
- 如果某位为零,且其不是该段的最后一位,且其下一位非零,则读作 "零"。
- 如果某段全为零,且其下一段开头非零,则读作零。
- 其余情况不读零。
- 负数:在结果前加 "负"。
输入格式
一个int64 即 $-9223372036854775808$ ($-2^{63}$) 到$9223372036854775807$ ($2^{63}-1$) 范围内的整数。
输出格式
一个字符串