我不熟悉竞争性编程和python。我在codechef上尝试这个问题,https://www.codechef.com/CCSTART2/problems/ADDNATRL,它要求我找到前N个自然数的和
这是我的第一个解决方案:
n = int(input())
n = (n * (n + 1)) / 2
print(int(n))
这给了我一个错误的答案
虽然接受了以下解决方案
n = int(input())
n = (n * (n + 1)) // 2
print(n)
所以我想知道实际的区别是什么,因为两者在我的本地机器上都给了我相同的输出
/
以浮点形式给出商,//
给出整数结果在n
1e9
范围的上限处,大约1e18
的中间结果不能在IEEE“双”浮点中精确表示,这是python通常使用的,并且存在舍入错误。输出一个近似答案同时,整数的范围是无限的,因此输出精确的答案
例如:
/
给出浮点形式的余数,//
给出整数结果//
与其他编程或脚本语言中的/
相同但是在Python中
/
作为除法引入,给出整数输出,//
作为楼层除法引入,给出整数输出与竞争性编程一样,采用最佳方式。除了使用
/
和int()
之外,还可以使用//
。这也减少了运行时间相关问题 更多 >
编程相关推荐