## 【34】Digit factorials各位數字階乘 145是個奇怪的數字,因為1! + 4! + 5! = 1 + 24 + 120 = 145。 請求出能表示成其每位數的階乘的和的所有數的和。 請注意:由於1! = 1和2! = 2不是和,故它們並不包括在內。 ### 練習1:做出一個能計算階乘的函式fact(n), fact(0)=1、fact(1)=1 fact(3)=3!=6、fact(5)=5!=120 ### 練習2:下面程式僅僅將四位數切開,請改成不管幾位數,都將數字切開,並以list傳回。 ![](https://i.imgur.com/PqkjwKJ.png) 上面這兩種方法都有侷限性,如果要處理5位數,就得用人工方法去增加,雖然你可以寫出好幾個函式,分別針對2、3、4、5…位數,但是參考下面的函式,你就可以寫出一個切任意位數的方法。 ![](https://i.imgur.com/RkdWPsl.png) 觀察9!=362880 如果7個數字都是9,最大362880*7=2540160 可以判斷達到這種要求的數,不會超過7位數,更準確說,不會超過3百萬。 因為3999999-->362880*6+3!=2177286 9999999-->2540160 ## 請求出:能表示成其每位數的階乘的和的所有數的和。