gpt4 book ai didi

java - Java 与 Python 中相同功能的不同之处

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:16 25 4
gpt4 key购买 nike

我有一个计算公式

((x+y-1)*(x+y-2))/2 + x 

并获取它的字符串表示形式。所以在 Java 1.7 中我写了

public static void main(String[] args)
{
int x = 99999;
int y = 99999;
int answer = ((x+y-1)*(x+y-2))/2 + x;
String s = Integer.toString(answer);
System.out.println(s);
}

在 Python 2.7 中

def answer(x, y):
z = ((x+y-1)*(x+y-2))/2 + x
return str(z);

print(answer(99999,99999))

Java 给了我 672047173 的输出,而 Python 给了我 19999400005 似乎 Python 的值是正确的。这种差异背后的原因是什么。

最佳答案

19999400005 对于 int 变量来说是一个太大的值,因此 Java 计算会溢出。

改用 long 变量:

public static void main(String[] args)
{
long x = 99999;
long y = 99999;
long answer = ((x+y-1)*(x+y-2))/2 + x;
String s = Long.toString(answer);
System.out.println(s);
}

输出是:

19999400005

另请注意,您可以直接打印 answer 而不必将其显式转换为 String:

System.out.println(answer);

关于java - Java 与 Python 中相同功能的不同之处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44351263/

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