📅  最后修改于: 2023-12-03 15:12:04.565000             🧑  作者: Mango
本题目需要你设计一个函数,计算满足不等式 $x^2+y^2<n$ 的不同非负整数对 $(x,y)$ 的个数。
def calc_pairs(n: int) -> int:
pass
n
:一个整数,表示需要计算的不等式中的 $n$ 的值 $(0 \leq n \leq 10^9)$首先,我们可以引入二维坐标系,对于一个不等式 $x^2+y^2<n$,可以表示为所有满足条件的 $(x,y)$ 是平面内的一个圆形区域。
因此,我们可以通过枚举 $x$ 和 $y$ 的值,计算其平方和,判断是否小于 $n$,如果小于 $n$,则计数器加一。
因为 $x$ 和 $y$ 的范围都是从 $0$ 开始到 $\sqrt{n}$,所以计算的时间复杂度为 $O(n)$,可以通过本题。
def calc_pairs(n: int) -> int:
count = 0
for i in range(int(n ** 0.5) + 1):
for j in range(int(n ** 0.5) + 1):
if i * i + j * j < n:
count += 1
return count