查找最大N,以使Python中前N个自然数的平方和不超过X
假设我们有一个给定的整数X,我们必须找到最大值N,以使前N个自然数的总和不超过值X。
因此,如果输入为X=7,则输出将为2,因为2是N的最大可能值,对于N=3,级数之和将超过X=7所以,1^2+2^2+3^2=1+4+9=14。
为了解决这个问题,我们将遵循以下步骤-
定义了一个函数sum_of_squares()。这将取N
RES:=(N*(N+1)*(2*N+1))/6
返回资源
从主要方法中,执行以下操作-
低:=1
高:=100000
N:=0
而低-高=,做
高:=中-1
N:=中
低:=中+1
中间:=(高+低)/2
如果sum_of_squares(MID)- =X,则
除此以外,
返回否
示例
让我们看下面的实现以更好地理解-
def sum_of_squares(N):
res = (N * (N + 1) * (2 * N + 1)) // 6
return res
def get_max(X):
low, high = 1, 100000
N = 0
while low <= high:
mid = (high + low) // 2
if sum_of_squares(mid) <= X:
N = mid
low = mid + 1
else:
high = mid - 1
return N
X = 7
print(get_max(X))输入值
7
输出结果
2
热门推荐
6 怎么说祝福语简短
10 宝子生日祝福语简短
11 祝福语大全简短6个
12 三八简短祝福语给婆婆
13 婆婆生日祝福语简短的
14 简短的出行工作祝福语
15 端午发给客户祝福语简短
16 聚餐会祝福语简短
17 给婴儿祝福语简短的话
18 六一祝福语简短感动女生