四平方和問題(java)

QUESTION:

四平方和的定理又稱拉格朗日定理:每一個正整數均可以表示至多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

 

ANSWER:

 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 }

 

PS:

碰見題真的是不要怕,一看見題內心就想,完了這道題不會,這不行。spa

原本會的題,都不會了。code

抓住問題的點,難題簡單化。blog

相關文章
相關標籤/搜索