[英]Efficient algorithm to find the count of numbers that are divisible by a number without a remainder in a range
[英]Python: Count divisible numbers from a smaller number WITHOUT string
假设你有一个 function:
def count_divisible_numbers(n, m):
...
这个 function 应该计算n
中有多少位可以被m
整除。
例如:
>>> n = 668593
>>> m = 3
>>> count_divisible_numbers(n, m)
4
因为6668593
(n) 的 6、6、9 和 3 可以被 3 (m) 整除。
您不能使用 str 将n
分成单独的部分,并且您只能使用没有递归的 python 内置变量/函数(无导入)。
您将如何定义此 function 以使其产生该结果?
注意:我是一个自学成才的 Python 程序员,之前开发过软件包和 web 应用程序,这是我的一个大学学生遇到的一个问题,我不知道如何解决,这让我很恼火。
您可以通过取模数 10 来检查n
的个位,然后使用该值检查是否可以被m
整除。 然后整数除以 10 以将所有数字“移到”上,以处理现在位于个位的下一个数字。
def count_divisble_numbers(n, m):
total = 0
while n > 0:
if (n%10) % m == 0:
total += 1
n //= 10
return total
>>> count_divisble_numbers(668593, 3)
4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.