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 loop
或while 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 提交时出现分段错误
当我在笔记本电脑上运行时,我的代码工作,但当我上传到hackerrank时,我在strtol得到错误