在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
後