获取整数除法和零模错误



我得到整数除法或模除以零错误。


def getProduct(n): 
product = 1
while (n != 0): 
product = product * (n % 10) 
n = n // 10
return product 
def printSubstrings(n):
s=int(math.log10(n))
d=(math.pow(10,s))
k=d
count = 0
while n>0:
while d>0:
ans=0
ans = getProduct(n//d)
if ans%4==0 or ans%2!=0:
count+=1
d=int(d/10)
n = int(n%k)
k = int(k//10)
d = k
print(count)

简单输入运行良好,但在输入大输入数据时,在大输入上会出现ZERODIVISIONERROR

1011903030 2093524 04935049 09024 12242910 109310 1000901 103412 102901 10290191

我得到的错误:

Traceback (most recent call last):
File "e:/CodeWork/Code Challenge/rough.py", line 271, in <module>
printSubstrings(num)
File "e:/CodeWork/Code Challenge/rough.py", line 261, in printSubstrings
n = int(n%k)
ZeroDivisionError: integer division or modulo by zero

在计算n % k之前,需要确保k != 0成立。

由于模算子%是通过在除法时求余数来实现的,因此如果您尝试为任何整数n计算n % 0,则会得到零除法错误。

最新更新