Python程序:查找给定范围内数字的出现次数
假设我们得到了两个正整数 n 和 d,其中 d 是 0 到 9 之间的数字。我们需要确定数字 d 在 1 到 n 之间的整数中出现了多少次。
例如,如果输入为 n = 45,d = 5,则输出为 5。
这些数字包含数字 5:[5, 15, 25, 35, 45]。
为了解决这个问题,我们将遵循以下步骤:
定义一个函数 solve()。它将接收 n 和 d 作为输入。
如果 n < 0,则
返回 0
k := floor of (n /10) − 1
ans := solve(k, d) * 10 + k + 1
如果 d 等于 0,则
ans := ans − 1
m := floor of (n / 10) * 10
当 m <= n 时,执行以下操作:
ans := ans + m 的字符串表示中 d 的字符串表示出现的次数。
m := m + 1
返回 ans
在主函数中,现在调用该函数:
value := solve(n,d)
print(value)
让我们来看以下实现,以便更好地理解:
示例
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
广告