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

পাইথনে দেওয়া পরিসরে একটি অঙ্কের ঘটনার সংখ্যা গণনা

দুটি ধনাত্মক পূর্ণসংখ্যা n এবং d (0-9 এর মধ্যে একটি অঙ্ক) দেওয়া আছে। 1 থেকে n পর্যন্ত সংখ্যাগুলোতে d অঙ্কটি কতবার আসে তা বের করতে হবে।

উদাহরণ: n = 45, d = 5 হলে আউটপুট ৫, কারণ ৫, ১৫, ২৫, ৩৫, ৪৫ এ ৫ অঙ্কটি আছে।

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

  • রিকার্শিভ ফাংশন solve(n, d) সংজ্ঞায়িত করুন
  • যদি n < 0 হয় তবে 0 ফেরত দিন
  • k := n//10 - 1
  • ans := solve(k, d)*10 + k + 1
  • যদি d == 0 হয় তবে ans := ans - 1
  • m := n//10 * 10 থেকে n পর্যন্ত লুপে অঙ্ক গণনা করুন
  • ans ফেরত দিন

উদাহরণ কোড

class Solution:
    def solve(self, n, d):
        if n < 0:
            return 0
        k = n // 10 - 1
        ans = self.solve(k, d) * 10 + k + 1
        if d == 0:
            ans -= 1
        m = n // 10 * 10
        while m <= n:
            ans += str(m).count(str(d))
            m += 1
        return ans

ob = Solution()
print(ob.solve(45,5))

ইনপুট

45, 5

আউটপুট

5
  1. পাইথনে গ্রাফ সবাই দ্বারা ট্রাভার্সেবল কিনা চেক করার প্রোগ্রাম

  2. পাইথনে দেয়া সংখ্যার বাইনারি রিপ্রেজেন্টেশনে ১ বিটের সংখ্যা গণনা করার প্রোগ্রাম

  3. পাইথনে ম্যাট্রিক্সের ট্রান্সপোজ বের করার প্রোগ্রাম

  4. পাইথনে সমীকরণ a + b = c থেকে অনুপস্থিত মান বের করুন