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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hackerrank不接受我的代码。为什么?相关的知识,希望对你有一定的参考价值。

所以任务是读取一个整数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

答案

首先,如果要迭代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)
另一答案

要添加到@ Marcus.Aurelianus答案:

如果您在Python 2中更改:

n = input()
另一答案
n=int(input())
for i in range(0,n):
    print(i*i) 
另一答案

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

第一个是你没有为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)

以上是关于Hackerrank不接受我的代码。为什么?的主要内容,如果未能解决你的问题,请参考以下文章

HackerRank 天气观测站 5

HackerRank天气观测站5

代码在我的系统上运行良好,但 HackerRank 提交时出现分段错误

当我在笔记本电脑上运行时,我的代码工作,但当我上传到hackerrank时,我在strtol得到错误

Hackerrank:Sherlock 和 Anagrams [关闭]

失败了一个简单的HackerRank问题,没有在线学习的方法,请帮助我修复简单但错误的算法