问题遇到的现象和发生背景
数字游戏
时间限制:2 s
内存限制:256 MB
给定一个序列n 正数 a1, a2, ……, an. 只要有不同的数字,就执行以下操作:选择一个最大的数字并从中减去最小的数字。 将执行多少操作?输入输入的第一行包含数字n(1 <n<1000)。下一行包含个数字 ai (1 < ai < 10^9)。输出打印一个数字,操作的次数。
例子
标准输入
2
1 1
标准输出
0
标准输入
3
9 6 3
标准输出
3
标准输入
6
1000000000 1000000000 1000000000 1000000000 1000000000 1
标准输出
4999999995
问题相关代码,请勿粘贴截图
n = int(input())
a = list(map(int,input().split()))
while True:
count = 0
a.sort()
maxv = a[-1]
minv = a[0]
if maxv==minv:
break
while n > 1:
if a[n-1] == a[0]:
break
elif n>2:
count += (a[n-1]-a[n-2])//a[0] +1
a[n-1] = -(a[0]*((a[n-1]-a[n-2])//a[0] +1)-a[n-1])
a.sort()
print(count)
运行结果及报错内容
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
/tmp/ipykernel_176/3611171700.py in <module>
12 break
13 elif n>2:
---> 14 count += (a[n-1]-a[n-2])//a[0] +1
15 a[n-1] = -(a[0]*((a[n-1]-a[n-2])//a[0] +1)-a[n-1])
16 a.sort()
ZeroDivisionError: integer division or modulo by zero