Hackerrank不接受我的代码。为什么?

问题描述 投票:-2回答:4

所以任务是读取一个整数N对于所有非负整数I <N,print输出格式应该打印N行,一行对应于每个i。

例如,用户输入为5,因此输出应为... 0 1 4 9 16

这是我的解决方案。

# The first two lines of code were default and already there.
if __name__ == '__main__':
    n = int(input())

# Everything below is my code.
for i in range(0,5):
    while i < 5:
        print(i ** 2)
        i += 1
        break

因此虽然这在Python 3.7中有效,但它在Hackerrank中不起作用,因为如果你要输入一个高于5的数字,让我们说7,Hackerrank会输出... 0 1 4 9 16 25 36

Python输出数字16后就会停止。

我怎样才能在Hackerrank中解决这个问题?如果您想自己查看问题,可以使用以下链接。 https://www.hackerrank.com/challenges/python-loops/problem

python python-3.x loops while-loop
4个回答
2
投票

首先,如果要迭代n个数字,则不应写入范围(0,5)。

其次,你不需要在功能上写另一个。你使用for loopwhile loop来解决这个问题。

更改

for i in range(0,5):
    while i < 5:
        print(i ** 2)
        i += 1
        break

for i in range(0,n):
    print(i ** 2)

1
投票

要添加到@ Marcus.Aurelianus答案:

如果您在Python 2中更改:

n = input()

1
投票
n=int(input())
for i in range(0,n):
    print(i*i) 

0
投票

因为你的答案中有两个错误的东西。

第一个是你没有为N写下你的价值,你必须得到用户。

其次,数学运算是错误的。您需要将print(i ** 2)修复为print(i * 2),以便获得他们想要的结果。这可能是它不接受的原因。

我对同一个问题的答案如下。

if __name__ == '__main__':
n = int(input(""))
i = 0
while i < n:
    r = i * i
    i += 1
    print(r)
© www.soinside.com 2019 - 2024. All rights reserved.