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