## 【40】Champernowne's constant錢珀瑙恩常數 連接相鄰正整數構造不循環小數 我們可以通過連接相鄰的正整數來構造一個不循環小數: 0.123456789101112131415161718192021... 如上,小數部分的第12位元數位是1。 若以dn來表示小數部分的第n位元數位的話,那麼以下算式的結果是多少呢? d1×d10×d100×d1000×d10000×d100000×d1000000 #### 用字串來處理最好,因為中間沒有逗點隔開。 str(n)可以將數字轉成為文字的字串,而文字可以用加號+連接。 ### 練習1:將1~100連續數字,全部串連在一個字串裡面。 ![](https://i.imgur.com/6VInloC.png) #故意將0也放進去,因為字串取出字母跟陣列用法相同,第1筆資料的足碼為0,而我們希望d1取到1,這樣剛好配合足碼,所以d2取到2、d3取到3...。 ### 練習2:取出練習1中,字串s的d99×d100 注意:d99=s[99]、d100=s[100],如果就這樣將d99×d100會出錯! 因為抓出來的是字元,你還得用int()轉化成數字,然後才能相乘。 ### 練習3:寫一個小迴圈印出1,10,100,1000,10000,100000,1000000 ![](https://i.imgur.com/VGWBJYz.png) 問題:本題要找出d1000000需要將迴圈數到1000000嗎? 這是排列組合的數學問題: 個位數9個字元 二位數90x2=180個字元 三位數900x3=2700個字元 四位數9000x4=36000個字元 五位數90000x5=450000個字元 (1000000-450000-36000-2700-180-9)/6=85185.167個六位數 所以迴圈算到100000+85186=185186就夠了 如果你懶得想這個問題,直接到1000000保管夠,萬一是複雜計算,多花5倍時間而已。 ## 請求出以下算式的結果是多少? ### d1×d10×d100×d1000×d10000×d100000×d1000000