0
已采纳
涂俊驰
初级守护
初级守护
这个要用到勾股数的**质
布丁:
思路:暴力枚举法,对于每个 z,枚举 x,y 的取值,验证是否为勾股数。时间复杂度为 O(N^3),可能会超时。
优化思路:利用勾股数的**质,即 x、y、z 必须满足互质(也就是它们没有公共因子)。枚举 z,然后找出满足条件的互质的 x、y 值,即可得到勾股数。找出互质的 x、y 枚举的方法是枚举 a 和 b,使 x=a2-b2,y=2ab,z=a2+b2,其中 a、b 必须满足互质且 a>b。时间复杂度为 O(N^2 logN)。
代码示例:(注意,下面的代码仅作为参考,不能完全照抄,请自己思考和修改
我也不会