
题目描述
1925. 统计平方和三元组的数目
一个 平方和三元组 (a,b,c)
指的是满足 a2 + b2 = c2
的 整数 三元组 a
,b
和 c
。
给你一个整数 n
,请你返回满足 1 <= a, b, c <= n
的 平方和三元组 的数目。
示例 1:
1 2 3
| 输入:n = 5 输出:2 解释:平方和三元组为 (3,4,5) 和 (4,3,5) 。
|
示例 2:
1 2 3
| 输入:n = 10 输出:4 解释:平方和三元组为 (3,4,5),(4,3,5),(6,8,10) 和 (8,6,10) 。
|
提示:
解题思路
无脑暴力解。
代码实现
实现一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public class Solution1925Case1 {
private static int countTriples(int n) { int count = 0; for (int i = 1; i < n; i++) { for (int j = 1; j < n; j++) { int sum = i * i + j * j; if (sum <= n * n) { double sqrt = Math.sqrt(sum); if (sqrt % 1 == 0) { count++; } } } } return count; }
public static void main(String[] args) { System.err.println(countTriples(10)); } }
|
实现二
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| public class Solution1925Case2 {
private static int countTriples(int n) { int count = 0; for (int i = 1; i < n; i++) { for (int j = 1; j < n; j++) { int sum = i * i + j * j; if (sum <= n * n) { for (int k = 1; k <= n; k++) { if (k * k == sum) { count++; } } } } } return count; }
public static void main(String[] args) { System.err.println(countTriples(10)); } }
|