ধরা যাক একটি ধনাত্মক সংখ্যা n আছে, n কি স্বতন্ত্র ধনাত্মক ফ্যাক্টোরিয়াল সংখ্যাগুলোর যোগফল হিসেবে লেখা যায় কিনা যাচাই করতে হবে।
উদাহরণ: n = 144 হলে আউটপুট True, কারণ 4! + 5! = 24 + 120 = 144।
সমাধানের ধাপসমূহ
- fact := 1, res := [], x := 2
- যখন fact <= n: res-এ fact অ্যাপেন্ড করুন, fact = fact * x, x++
- i = len(res)-1 থেকে 0 পর্যন্ত: যদি n >= res[i], 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