leetcode 1925

1925: 统计平方和三元组的数目

思路:暴力枚举

我们可以枚举所有 a>b 的平方和三元组 (a,b,c)。由于 a^2+b^2=b^2+a^2,所以 (b,a,c) 也是平方和三元组。所以只需统计 a>b 的情况,最后把统计结果乘以 2,即为答案。枚举 a,b,如果 a^2+b^2 ≤n*n (c<=n) 且 c= 是整数,那么我们找到了一个平方和三元组 (a,b,c),计数器加一。

复制代码
int c = sqrt(c2); 

sqrt 的返回类型是 double;编译器发现要把一个 double 赋给 int,这是"隐式类型转换",会直接把小数部分截断(向 0 取整,不是四舍五入)

复制代码
class Solution {
public:
    int countTriples(int n) {
        int ans=0;
        for(int a=1;a<n;a++){
            for(int b=1;b<a && a*a+b*b<=n*n;b++){
                int c2=a*a+b*b;
                int c=sqrt(c2);
                if(c*c==c2) ans++; 
            }
        }

        return ans*2; // (a,b,c) 和 (b,a,c) 各算一次
    }
};
相关推荐
_深海凉_1 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
踩坑记录2 小时前
leetcode hot100 寻找两个正序数组的中位数 hard 二分查找 双指针
leetcode
旖-旎2 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
谭欣辰2 小时前
C++快速幂完整实战讲解
算法·决策树·机器学习
Mr_pyx2 小时前
【LeetHOT100】随机链表的复制——Java多解法详解
算法·深度优先
AIFarmer3 小时前
【无标题】
开发语言·c++·算法
AGV算法笔记3 小时前
CVPR 2025 最新感知算法解读:GaussianLSS 如何用 Gaussian Splatting 重构 BEV 表示?
算法·重构·自动驾驶·3d视觉·感知算法·多视角视觉
勤劳的进取家4 小时前
数据链路层基础
网络·学习·算法
Advancer-4 小时前
第二次蓝桥杯总结(上)
java·算法·职场和发展·蓝桥杯
ん贤5 小时前
加密算法(对称、非对称、哈希、签名...)
算法·哈希算法