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$) 范围内的整数。

输出格式

一个字符串