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

时间:2018-07-18 02:38:17

标签: python python-3.x loops while-loop

所以任务是读取整数 N 对于所有非负整数 I ,请打印 输出格式应打印 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

7 个答案:

答案 0 :(得分:2)

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

第二,您不需要编写另一个while函数。您对这个问题使用LambdaPermission1: Type: "AWS::Lambda::Permission" Properties: Action: lambda:InvokeFunction FunctionName: !GetAtt HandlerFunction.Arn Principal: apigateway.amazonaws.com SourceAccount: !Ref AWS::AccountId SourceArn: !Join ["", ["arn:aws:execute-api:", {"Ref": "AWS::Region"}, ":", {"Ref": "AWS::AccountId"}, ":", <API id>, "/<stage>/<method>/path"]] for loop

更改

while loop

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

答案 1 :(得分:1)

要添加到@ Marcus.Aurelianus答案:

如果您使用的是Python 2,请进行以下更改:

n = input()

答案 2 :(得分:1)

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

答案 3 :(得分: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)

答案 4 :(得分:0)

在Python2中:

if __name__ == '__main__': n = int(raw_input()) for number in range(0,n): print(number*number)

在Python3中:

if __name__ == '__main__': n = int(input()) for number in range(0,n): print(number*number)

答案 5 :(得分:0)

在 Python 3 中:

if __name__ == '__main__':
    n = int(input())
    for i in range(0,n):
        if i<n:
            print(i*i)

答案 6 :(得分:-1)

这应该有效:

if __ name __ == ' __main __':
     n = int(input())

for i in range(n):
    while i < 10:
        print(i ** 2)
        i += 1
        break