藍橋杯試題:四平方和 java(窮舉)
阿新 • • 發佈:2018-12-13
import java.util.Scanner; /* 練習題:四平方和 四平方和定理,又稱為拉格朗日定理:每個正整數都可以表示為至多四個正整數的平方和。如果把 0 包括進去, 就正好可以表示為四個數的平方和。 比如: 5=02+02+12+22 7=12+12+12+22 則對於一個給定的正整數 n,可以表示為:n=a2+b2+c2+d2。 你需要求出 字典序 最小的一組解 a,b,c,d。 字典序大小:從左到右依次比較,如果相同則比較下一項,直到有一項不同,較小的一方字典序更小,反之字典序更大, 所有項均相同則二者字典序相同。 輸入格式 程式輸入為一個正整數 N(1≤N≤5000000)。 輸出格式 輸出四個非負整數 a,b,c,d,中間用空格分開。 樣例輸入1 5 樣例輸出1 0 0 1 2 樣例輸入2 12 樣例輸出2 0 2 2 2 */ public class FourNumberSum { public static void main(String [] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); for (int i = 0; i <Math.sqrt(n) ; i++) { for (int j = 0; j <Math.sqrt(n) ; j++) { for (int k = 0; k <Math.sqrt(n) ; k++) { for (int l = 0; l <Math.sqrt(n) ; l++) { if (i*i+j*j+k*k+l*l==n){ System.out.println(i+" "+j+" "+k+" "+l); return; } } } } } } }