📅  最后修改于: 2023-12-03 15:19:13.246000             🧑  作者: Mango
这个Python3程序可以计算一个数的所有旋转中,有多少个能被10整除。
def isDivisible(num):
if num % 10 != 0:
return False
num //= 10
while num > 0:
if num % 10 in {2, 5, 7}:
return False
num //= 10
return True
def countDivisible(num):
count = 0
for i in range(len(str(num))):
if isDivisible(num):
count += 1
num = str(num)[-1] + str(num)[:-1]
num = int(num)
return count
这个程序包含两个函数:
isDivisible(num)
:判断一个数能否被10整除的函数countDivisible(num)
:计算一个数的所有旋转中,有多少个能被10整除的函数isDivisible(num)
函数的具体实现如下:
如果num不能被10整除(即最后一位不是0),直接返回False。
如果num可以被10整除,将num整除以10。
循环遍历num的每位数字,如果存在2、5、7就返回False,否则返回True。
countDivisible(num)
函数的具体实现如下:
初始化一个计数器count为0。
使用一个for循环遍历num的所有旋转,对于每一个旋转,调用isDivisible(num)
函数判断该旋转是否能被10整除,若能,则将count加1。
返回计数器count的值。
>>> countDivisible(120)
2
>>> countDivisible(250)
0
>>> countDivisible(170)
1
>>> countDivisible(10000)
1
以上使用示例分别计算了数120、250、170、10000的所有旋转中,能被10整除的个数并返回。