四平方和的定理又稱拉格朗日定理:每一個正整數均可以表示至多4個正整數的平方和。若是把0包括進去,就能夠表示爲4個數的平方和。
好比:
5=0^2+0^2+1^2+2^2 7=1^2+1^2+1^2+2^2
對於一個給定的正整數,可能存在多種平方和的表示法。要求你4個數排序:
0<=a<=b<=c<=d
並對全部的可能表示法按 a,b,c,d爲聯合主鍵升序排列,最後輸出第一個表示法。程序輸入爲一個正整數N(N<5000000),要求輸出4個非負整數,按從小到大排序,中間用空格分開,如,輸入
5
則程序輸出:
0 0 1 2
資源約定:
峯值內存消耗(含虛擬機) < 256M CPU消耗 < 3000msjava
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner sc = new Scanner(System.in); 5 int n = sc.nextInt(); 6 7 if(n>0&&n<=5000000){ 8 for(int i = 0;i<(int)Math.sqrt(n)+1;i++){ 9 for(int j = 0;j<(int)Math.sqrt(n)+1;j++){ 10 for(int k = 0;k<(int)Math.sqrt(n)+1;k++){ 11 for(int h = 0;h<(int)Math.sqrt(n)+1;h++){ 12 if(i*i+j*j+k*k+h*h==n){ 13 System.out.println(i+" "+j+" "+k+" "+h); 14 System.exit(0); 15 } 16 } 17 } 18 } 19 } 20 } 21 22 } 23 }
碰見題真的是不要怕,一看見題內心就想,完了這道題不會,這不行。spa
原本會的題,都不會了。code
抓住問題的點,難題簡單化。blog