守望_sy 2021-12-15 01:41 采纳率: 63.2%
浏览 84
已结题

怎么用python实现这个问题?

问题遇到的现象和发生背景

数字游戏
时间限制: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

  • 写回答

2条回答 默认 最新

  • 索利亚噶通 2021-12-15 09:39
    关注

    你上一个问题题目下面的所有测试用例, 包括回答下面的测试用例我都试过了, 可以通过, 代码给你试下, 有用点个采纳

    n = int(input())
    nums = list(map(int,input().split()))
    
    count = 0
    while True:
        maxV = max(nums)
        minV = min(nums)
        if maxV == minV:     # 结束条件
            break
    
        # 以minV做最小值时, 应该减去的值
        for i in range(len(nums)):
            temp = nums[i] // minV - 1
            if temp > 0:
                count += temp
                nums[i] -= temp * minV
    
        # 更换最小值
        maxIndex = nums.index(max(nums))
        if nums[maxIndex] == minV:
            break
    
        nums[maxIndex] -= minV
        count += 1
    
    
    print(count)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月15日

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 关于#网络安全#的问题:求ensp的网络安全,不要步骤要完成版文件
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥20 使用Photon PUN2解决游戏得分同步的问题
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序