gpt4 book ai didi

Java:获取最大公约数,哪种方法更好?

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

从这个问题Java: get greatest common divisor

在获取任何数据类型的gcd时无论是int, long, Integer, Long, which answer在精度、速度、CPU 使用率等方面更好?

答:

private static int gcdThing(int a, int b) {
return BigInteger.valueOf(a).gcd(BigInteger.valueOf((b))).intValue();
}

乙:

public int GCD(int a, int b) { return b==0 ? a : GCD(b, a%b); }

最佳答案

    Random r = new Random();
int[] ints = new int[500000];
for (int i = 0 ; i < ints.length ; i++)
ints[i] = r.nextInt();

for (int i = 0 ; i < ints.length-1; i++)
GCD(i,i+1);
for (int i = 0 ; i < ints.length-1; i++)
gcdThing(i, i + 1);

long start = System.currentTimeMillis();
for (int i = 0 ; i < ints.length-1; i++)
GCD(i,i+1);
System.out.println("GCD: " + (System.currentTimeMillis() - start));

start = System.currentTimeMillis();
for (int i = 0 ; i < ints.length-1; i++)
gcdThing(i, i + 1);
System.out.println("gcdThing: " + (System.currentTimeMillis() - start));

打印:

GCD:13

gcdThing:124

关于Java:获取最大公约数,哪种方法更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21570890/

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