Python程式檢查數字能否寫成不同階乘數之和
假設我們有一個正數n,我們需要檢查n是否可以寫成唯一正整數階乘的和。
因此,如果輸入類似於n = 144,則輸出將為True,因為4! + 5! = 24 + 120 = 144
為了解決這個問題,我們將遵循以下步驟:
fact := 1
res := 新列表
x := 2
當fact <= n時,執行以下操作:
將fact插入到res的末尾
fact := fact * x
x := x + 1
對於res大小從-1到0的i,遞減1,執行以下操作:
如果n >= res[i],則
n := n - res[i]
當n等於0時返回true
讓我們看看下面的實現,以便更好地理解:
示例
class Solution: def solve(self, n): fact = 1 res = [] x = 2 while fact <= n: res.append(fact) fact = fact * x x += 1 for i in range(len(res)-1,-1,-1): if n>=res[i]: n-=res[i] return n==0 ob = Solution() print(ob.solve(144))
輸入
144
輸出
True
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP