কম্পিউটার

পাইথনে স্ট্রিং হিসাবে প্রদত্ত একটি সংখ্যার সমস্ত সাবস্ট্রিংয়ের মোট যোগফল খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের স্ট্রিং ফরম্যাটে একটি সংখ্যা আছে এবং আমাদের s এর সব সাবস্ট্রিং এর যোগফল বের করতে হবে। উত্তরটি অনেক বড় হতে পারে, তাই ফলাফল মডিউল 10^9+7 ফেরত দিন।

সুতরাং, যদি ইনপুটটি s ="268" এর মতো হয়, তাহলে আউটপুট হবে 378 কারণ সাবস্ট্রিংগুলি "2", "6", "8", "26", "68" এবং "268" মোট যোগফল 378 .

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

  • M :=10^9 + 7
  • sum_val :=0
  • B :=1
  • res :=0
  • s - 1 থেকে 0 এর রেঞ্জের আকারের জন্য, 1 দ্বারা হ্রাস করুন, করুন
    • res :=(res + ডিজিট মান s[i] * B *(i + 1)) mod M
    • sum_val :=sum_val - s[i]
    • এর অঙ্কের মান
    • B :=(B * 10 + 1) mod M
  • রিটার্ন রিটার্ন

উদাহরণ

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

def solve(s):
   M = 10 ** 9 + 7
   sum_val = 0
   B = 1
   res = 0
   for i in range(len(s) - 1, -1, -1):
      res = (res + int(s[i]) * B * (i + 1)) % M
      sum_val -= int(s[i])
      B = (B * 10 + 1) % M
   return res

s = "268"
print(solve(s))

ইনপুট

"268"

আউটপুট

378

  1. পাইথন প্রোগ্রামে একটি সংখ্যার জোড় গুণনীয়কের সমষ্টি খুঁজুন

  2. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং এর সমস্ত স্থানান্তর প্রিন্ট করতে

  3. একটি প্রদত্ত স্ট্রিং নম্বর প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি প্রদত্ত স্ট্রিং শব্দ গণনা?