কম্পিউটার

পাইথনে কভার করা যেতে পারে এমন ব্লকের সংখ্যা খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন একটি পথে n ব্লক রয়েছে, এবং একজন কর্মী ব্লকগুলিতে রঙিন টাইলস লাগাচ্ছেন। কর্মী এমনভাবে ব্লক লাগাচ্ছেন, যেমন পথের একটি ব্লক সংখ্যা যদি 4 বা/এবং 2 দ্বারা বিভাজ্য হয় তবে 42 নয়, সে সেখানে একটি রঙিন টাইল রাখে। আমাদের খুঁজে বের করতে হবে যে সে কয়টি ব্লক কভার করতে পারবে যদি সে k সংখ্যার রঙিন টাইলস দিয়ে শুরু করে থাকে।

সুতরাং, ইনপুট যদি k =16 এর মত হয়, তাহলে আউটপুট হবে 32।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • MOD =10^9 + 7
  • ভাগফল :=(k / 20) এর তল মান
  • অবশিষ্ট :=কে মোড 20
  • যদি অবশিষ্টাংশ 0 এর সমান হয়, তাহলে
    • রিটার্ন((42 * ভাগফল - 2) mod MOD)
  • অন্যথায়,
    • রিটার্ন((42 * ভাগফল + 2 * অবশিষ্ট) mod MOD)

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(k):
   MOD = 10**9 + 7
   quotient = k // 20
   remainder = k % 20
   if remainder == 0:
      return ((42 * quotient - 2) % MOD)
   else:
      return ((42 * quotient + 2 * remainder) % MOD)

print(solve(16))

ইনপুট

16

আউটপুট

32

  1. পাইথনে k পর্যন্ত যোগফলের স্বতন্ত্র সংমিশ্রণের সংখ্যা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে দীর্ঘতম চেইন তৈরি করে এমন বাক্সের সংখ্যা খুঁজে বের করার প্রোগ্রাম?

  3. আমরা পাইথনে একটি বার্তা ডিকোড করতে পারি এমন কয়েকটি উপায় খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে আমরা সর্বাধিক সংখ্যক কয়েন সংগ্রহ করতে পারি তা খুঁজে বের করার প্রোগ্রাম