色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java費(fèi)馬平方和定理程序

傅智翔1年前7瀏覽0評論

Java費(fèi)馬平方和定理程序是一種用Java語言編寫的程序,主要用于解決費(fèi)馬平方和定理相關(guān)的問題。費(fèi)馬平方和定理是一個(gè)數(shù)論定理,它指出任何一個(gè)自然數(shù)都可以表示成不超過4個(gè)自然數(shù)的平方和。

/**
 * Java費(fèi)馬平方和定理程序
 */
public class FermatSquareSum {
public static void main(String[] args) {
int n = 98;
int[] result = fermatSquareSum(n);
System.out.print(n + " = ");
for (int i = 0; i< result.length; i++) {
if (i >0) {
System.out.print(" + ");
}
System.out.print(result[i] + "^2");
}
}
/**
* 計(jì)算費(fèi)馬平方和
*
* @param n 自然數(shù)
* @return 平方和的數(shù)組
*/
public static int[] fermatSquareSum(int n) {
int[] result = new int[4];
int x, y, z, t;
int i, j;
x = (int) Math.ceil(Math.sqrt(n));
y = 0;
z = 0;
t = (int) Math.pow(x, 2) - n;
while (t != 0) {
i = (int) Math.ceil(Math.sqrt(t));
t = (int) Math.pow(i, 2) - t;
j = 2 * x * i;
x = (int) Math.floor(((y + j) * 1.0) / t);
y = j - x * t;
z = z + 1;
result[z - 1] = i;
}
if (z == 1) {
result[1] = (int) Math.sqrt(n - result[0] * result[0]);
}
if (z == 2) {
result[2] = (int) Math.sqrt(result[2] - result[1] * result[1]);
}
int[] res = new int[z];
for (int k = 0; k< z; k++) {
res[k] = result[k];
}
return res;
}
}

以上是Java費(fèi)馬平方和定理程序的代碼,其主要實(shí)現(xiàn)是通過計(jì)算自然數(shù)與平方數(shù)之差,然后使用牛頓迭代法來進(jìn)行計(jì)算。我們可以通過傳入自然數(shù)的參數(shù),得到一個(gè)數(shù)組,其中包含了不超過4個(gè)自然數(shù)的平方和的組合。