找出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:=(n / 10)− 1的下限

  • 回答:= solve(k, d)* 10 + k + 1

  • 如果d与0相同,则

    • ans:= ans − 1

  • m:=(n / 10)* 10的下限

  • 当m <= n时

    • ans:= ans + m的字符串表示形式中d的字符串表示形式出现的次数。

    • m:= m +1

  • 返回ans

  • 现在从main函数调用函数-

  • 值:= 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