我得到整数除法或模除以零错误。
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
,则会得到零除法错误。