(直球辱骂)
让我回忆起了洗数据的痛苦,这题绝对超丧心病狂,因为英语的各种不规则变形真的超智障
居然还不许有多余空格……边界条件怕是要判定疯了
思路其实很清晰,就是边界条件会比较恶心
给定数字n,首先 a, b = n / 1e9, n % 1e9
然后a的部分如果非0就调用toStr把这个三位数变成字符串,然后增加billion(空格),否则直接进入下一步
继续c, d = b / 1e6, b % 1e6,
同样的如果c非0就toStr带走,并增加million(空格),否则直接进入下一步
e, f = d / 1e3, d % 1e3,
同样,e非0就toStr,增加thousand(空格),否则直接下一步
接着就是天杀的toStr部分了,给定不超过3位数n
a, b = n / 1e2, n % 1e2
如果a不为0,直接写个字典map到对应的英文(带空格)就好,然后增加hundred(空格),并判断b是否为0,。如果b不为0,增加个 and(空格)。否则直接结束
如果a为0,直接进入下一步。
给定两位数b,继续 c, d = b / 1e1, b % 1e1
如果c至少是2,那么输出对应的十位英文,map一下,并判断d是否为0。如果d不为0,增加个-。否则直接结束
如果c是1,那么根据d输出对应的英文(并带空格),还是map一下的事情
如果c是0,直接进入下一步
如果d非零,根据d输出对应各英文(带空格)
最后删除末位空格