ধরুন আমাদের একটি ধনাত্মক সংখ্যা n আছে, আমাদের পরীক্ষা করতে হবে n কে অনন্য ধনাত্মক ফ্যাক্টরিয়াল সংখ্যার যোগফল হিসাবে লেখা যায় কিনা।
সুতরাং, যদি ইনপুটটি n =144 এর মত হয়, তাহলে আউটপুটটি True হবে, যেমন 4! +5! =24 + 120 =144
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
ঘটনা :=1
-
res :=একটি নতুন তালিকা
-
x :=2
-
যদিও ফ্যাক্ট <=n, করবেন
-
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