找出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