gpt4 book ai didi

java - 计算产品为完美正方形的数组中对数的最有效方法?

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

我的解决方案是这样的:

获取所有可能的对(不是与问题要求的元素相同的对),然后检查第一个元素是否为完美正方形(如果为真)检查其他元素是否为完美正方形。

检查完美平方只是求平方根并检查小数部分。

我在面试中被问到这个问题,但它需要做得更好。谁能给我一个更好的方法。

int cnt = 0.0;
for (int i = 0; i < test; i++) {
for (int j = 0; j < test; j++) {
if (!(i == j)) {
double prod = Math.sqrt(arr[i]);
int prodi = (int) prod;
double frac = prod - prodi;
if (frac == 0.0) {
//System.out.println("SAdfs");
prod=Math.sqrt(arr[j]);
prodi = (int)prod;
frac = prod-prodi;
if (frac == 0.0) {
cnt++;
}
}
}
}
}

double denom=test*(test-1);
double result=cnt/denom;
String strDouble = String.format("%.6f", result);
System.out.println(result);

最佳答案

您需要找到两个输入的阶乘及其计数,例如

12 = 2 ^ 2, 3 ^ 1;
27 = 3 ^ 3;

然后您需要对两个输入的阶乘因子求和(例如我给出的是 2:2、3:4)。如果所有阶乘都有一个可以被 2 整除的因子(即因子 % 2 == 0)那么它就是一个完美的正方形

关于java - 计算产品为完美正方形的数组中对数的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35655795/

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