1. 程式人生 > >四方定理(遞歸) --java

四方定理(遞歸) --java

範圍 print style oid math return ann 平方和 著名

四方定理

數論中有著名的四方定理:所有自然數至多只要用四個數的平方和就可以表示。

我們可以通過計算機驗證其在有限範圍的正確性。

import java.*;
import java.util.*;
public class Main121 {

     
    public static int f(int n, int a[], int idx) {  
        if (n==0) // 填空1   
            return 1;  
        if (idx == 4)  
            return 0;  
  
        
for (int i = (int) Math.sqrt(n); i >= 1; i--) { a[idx] = i; if (f(n-i*i, a, idx+1) == 1) // 填空2 return 1; } return 0; } public static void main(String[] args) { Scanner scan = new Scanner(System.in);
for (;;) { int number; System.out.printf("輸入整數(1~10億):"); number = scan.nextInt(); int a[] = { 0, 0, 0, 0 }; int r = f(number, a, 0); System.out.printf("%s: %d %d %d %d\n", r==1?"有結果":"無結果", a[0], a[1], a[2], a[3]); } } }

四方定理(遞歸) --java