Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm ra sự xuất hiện của một chữ số từ một dải ô đã cho bằng Python


Giả sử chúng ta được cung cấp hai số nguyên dương n và d trong đó d là một chữ số trong khoảng từ 0 đến 9. Chúng ta phải xác định xem chữ số d xuất hiện bao nhiêu lần trong các số nguyên từ 1 và n.

Vì vậy, nếu đầu vào là n =45, d =5, thì đầu ra sẽ là 5.

Các số này có chữ số 5:[5, 15, 25, 35, 45].

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Định nghĩa một hàm giải quyết (). Điều này sẽ lấy n và d làm đầu vào.

  • nếu n <0, thì

    • trả về 0

  • k:=tầng của (n / 10) - 1

  • ans:=giải quyết (k, d) * 10 + k + 1

  • nếu d giống 0 thì

    • ans:=ans - 1

  • m:=tầng của (n / 10) * 10

  • trong khi m <=n, làm

    • ans:=ans + số lần xuất hiện biểu diễn chuỗi của d trong biểu diễn chuỗi của m.

    • m:=m + 1

  • trả lại ans

  • Từ hàm chính, bây giờ hãy gọi hàm -

  • giá trị:=giải quyết (n, d)

  • in (giá trị)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

45, 5

Đầu ra

5