gpt4 book ai didi

python - python中1到N之间数字求和的问题

转载 作者:行者123 更新时间:2023-12-03 23:25:46 25 4
gpt4 key购买 nike

当我尝试用 python 计算 1 到 N 之间数字的总和时,我尝试了这段代码

N = int(input())
S = int(N*(N+1)/2)
print(S)
它运行良好,直到我尝试输入 N=641009859 预期结果应该是= 205446819988104870
但结果是= 205446819988104864
这里有什么问题?

最佳答案

N * (N + 1) / 2做浮点除法,浮点数不能全部精确表示。做整数除法:N * (N + 1) // 2为您提供您所期望的 ( 205446819988104870 )
补充阅读:What Every Computer Scientist Should Know About Floating-Point Arithmetic
或者,您可以向右移动一位 ( N >> 1 ),这与除以二相同,因为 binary system works .(N >> 1) * (N + 1)给出与以前相同的答案。

关于python - python中1到N之间数字求和的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67306157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com