在this code golf question,有python answer编码为1的所有整数的长度到99用英语一个大数目:这个整数编码是如何工作的?
7886778663788677866389978897746775667552677566755267756675527886778663788677866355644553301220112001
要获得n
的长度,你只需要计算3 + (the_big_number/(10**n)) % 10
。这个怎么用?
在this code golf question,有python answer编码为1的所有整数的长度到99用英语一个大数目:这个整数编码是如何工作的?
7886778663788677866389978897746775667552677566755267756675527886778663788677866355644553301220112001
要获得n
的长度,你只需要计算3 + (the_big_number/(10**n)) % 10
。这个怎么用?
(the_big_number/(10^n)) % 10
拉出大数的第二个最低有效位数,所以长度只是从最右边的“零”(1 + 3 = 4)长度开始存储,然后跟随长度在最左边的“九十九”(7 + 3 = 10)。
最短的英文数字是三个字母(“一”,“二”,“六”,“十”),所以每个长度的存储偏移量为三。 100之前最长的是9 + 3 = 12个字母(例如“78”),所以每个数字可以存储为一个数字。
从右边开始:
注意,最长号码“77”只有12个字母,它方便地安装在一个单一的数字减去3
后