কম্পিউটার টিউটোরিয়াল

পাইথনে দিয়ে যোগফলের জন্য সর্বোচ্চ গুণফল নির্ণয়

একটি সংখ্যা n দেওয়া আছে। দুটি বা অধিক সংখ্যা খুঁজে বের করতে হবে যাদের যোগফল n হয় এবং গুণফল সর্বোচ্চ হয়। সেই সর্বোচ্চ গুণফল ফেরত দিতে হবে।

উদাহরণ: n = 12 হলে আউটপুট ৮১, কারণ 3+3+3+3=12 এবং 3*3*3*3=81।

সমাধানের ধাপসমূহ

  • ডাইনামিক প্রোগ্রামিং ফাংশন dp(n) সংজ্ঞায়িত করুন
  • যদি n == 0 হয় তবে 1 ফেরত দিন
  • i = 1 থেকে n পর্যন্ত ans = max(ans, i * dp(n-i))
  • ans ফেরত দিন

উদাহরণ কোড

class Solution:
    def solve(self, n):
        def dp(n):
            if n == 0:
                return 1
            ans = 0
            for i in range(1, n + 1):
                ans = max(ans, i * dp(n - i))
            return ans
        return dp(n)

ob1 = Solution()
print(ob1.solve(12))

ইনপুট

12

আউটপুট

81
  1. পাইথনে প্রথম n বিজোড় সংখ্যার যোগফল খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. লিস্টের কিউমুলেটিভ সাম বের করার পাইথন প্রোগ্রাম

  4. পাইথনে অ্যারের যোগফল বের করা