日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java中b的平方表示_第七届蓝桥杯Java B——四平方和

發布時間:2024/1/23 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中b的平方表示_第七届蓝桥杯Java B——四平方和 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

四平方和定理,又稱為拉格朗日定理:

每個正整數都可以表示為至多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

再例如,輸入:

12

則程序應該輸出:

0 2 2 2

再例如,輸入:

773535

則程序應該輸出:

1 1 267 838

資源約定:

峰值內存消耗(含虛擬機) < 256M

CPU消耗 < 3000msimport java.util.HashMap;

import java.util.Map;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner cin = new Scanner(System.in);

Map map = new HashMap();

int n = cin.nextInt();

for (int c = 0; c * c <= n; c++)

for (int d = 0; c * c + d * d <= n; d++)

if (!map.containsKey(c * c + d * d))

map.put(c * c + d * d, c);

for (int a = 0; a * a <= n; a++) {

for (int b = 0; b * b + a * a <= n; b++) {

if (map.containsKey(n - a * a - b * b)) {

int c = map.get(n - a * a - b * b);

int d = (int) Math.sqrt(n - a * a - b * b - c * c);

System.out.println(a + " " + b + " " + c + " " + d);

return;

}

}

}

}

}

總結

以上是生活随笔為你收集整理的java中b的平方表示_第七届蓝桥杯Java B——四平方和的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。