首页 > 解决方案 > 为什么这个代码在我提交给在线法官时显示“错误答案”?

问题描述

我对python很陌生。我正在解决一个在线法官的问题。问题是:

取整数集 1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,...

首先,删除每隔一个数字,我们得到以下缩减集。 1,3,5,7,9,11,13,15,17,19,...

现在,删除每三个数字,我们得到 1, 3, 7, 9, 13, 15, 19,...

无限期地继续这个过程……任何由于上述过程而没有被删除的数字都称为“幸运”。

这是我的代码:

m=int(input())
n=2
while 1:
    if m%n==0:
        print(0)
        break
    if n>m:
        print(1)
        break
    m=m-(m//n)
    n=n+1

另一种方法:

n=int(input())
def Lucky(n):
 next_position = n

 if Lucky.counter > n:
    return 1

 if n % Lucky.counter == 0:
    return 0

 next_position = next_position - next_position // Lucky.counter

 Lucky.counter = Lucky.counter + 1

 return Lucky(next_position)

Lucky.counter = 2
if Lucky(n):
 print (1)
else:
 print (0)

当我编译我的程序时,它成功运行并为所有测试用例提供了正确的答案。但是当我在 oj 上提交时,它显示“错误答案”并写成“可能您的代码对于多个测试用例 (TC) 无法正常工作”。在小测试用例(如 2)上,它显示正确答案,但当数字更大(如 30886)时,它根本没有显示任何答案。

标签: pythonpython-3.x

解决方案


推荐阅读