gpt4 book ai didi

java - 化简平方根

转载 作者:行者123 更新时间:2023-11-30 11:12:10 25 4
gpt4 key购买 nike

假设我想计算 8 的平方根。有两种显示结果的方法,如您所见:

enter image description here

我认为获得第二个解决方案的最佳方法是:

enter image description here

我想尝试在我的 Java 应用程序中显示 2√2 而不是 2,828427... 所以我想按照这些步骤开发一个类。让我们考虑 8 的平方根。

  1. 求出 8 (2*2*2) 的质因数
  2. 计算指数并尝试导出它们 (2^2 * 2 --> 2√2)

正如您在下面看到的,我已经开发了一个输出因子的代码。如果输入 8,方法 estraiRadice() 将输出 2 * 2 * 2,这是正确的。

private int b = 2;

public String estraiRadice(double x) {

String resRad = "";
int[] exponents = new int[100];

//Scomposizione in fattori primi
while (x > 1) {

if ((x % b) == 0) {
x /= b;
resRad += String.valueOf(b) + " * ";
} else {
b++;
}
}

return resRad;
}

第二步给我带来了问题,因为我不知道如何创建数字的幂并从平方根导出它。我的意思是:√2*2*2 怎么会变成 √4*2 然后变成 2√2?

我认为我可以将每个基数的指数存储在一个数组中,然后尝试以某种方式导出它。你有什么建议吗?

最佳答案

试试这个:

public static int[] squareRoot(int number) {
int number1 = number;
List<Integer> roots = new ArrayList<>();
int coefficient = 1;
for (int i = 2; i < number1; i++) {
if (number1 % (i * i) == 0) {
roots.add(i);
number1 /= i * i;
for (int j = 2; j < number1; j++) {
if (number1 % (j * j) == 0) {
roots.add(j);
number1 /= j * j;
}
}
}
}
for (int root : roots) coefficient *= root;
return new int[]{coefficient, number1};
}

你可以这样调用它:

System.out.println(squareRoot(96)[0] + "√" + squareRoot(96)[1]);

关于java - 化简平方根,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27043253/

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