理解计算错误的困难

2024-05-23 17:01:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经写了一些代码,但并不是每次都能得到正确的结果 我不明白问题出在哪里。 例如,我改为在范围(2)和给它570和594,正确的答案是594 16,但它给我570 16,但在其他一些情况下,它会正常工作,我不知道是什么问题!你知道吗

maxim=0
maxnum=0
def divisor(number):
    counter=0
    for i in range(0,number):
        if number%(i+1) == 0:
            counter+=1
    return counter


for i in range(20):
    num=int(input())
    divis=divisor(num)
    if maxim<divis:
        maxnum=num
        maxim=divis
        maxnum=num
print(maxnum,maxim)

Tags: 答案代码innumberforifdefcounter
2条回答

最大更新条件是maxim<divis570594得到相同的divis,所以maxnum就是570

594和570各有16个除数。只有当除数的数目大于当前的maxim时,才更改maxnum。既然570作为第一个输入出现maxnum将是570。像这样改变

if maxim<=divis:
    if (maxim==divis and num>maxnum) or maxim<divis:
         maxnum=num
    maxim=divis

相关问题 更多 >