python计算最小自然数N,让从1到N的所有正整数之和大于S(运用while循环,N和S都是变量),并且打印结果。

python计算最小自然数N,让从1到N的所有正整数之和大于S(运用while循环,N和S都是变量),并且打印结果。

写出代码,计算最小自然数N,让从1到N的所有正整数之和大于S(运用while循环,N和S都是变量),并且打印结果。 例如,如果S=10, 那么 N=5 (1+2+3+4+5=15>10); 如果S=100, 那么N=14(1+2+3+。。。+14=105>100)


回答:

python">def calc (S: int):

sum = 0

N = 0

while S >= sum:

N += 1

sum += N

print(N)

calc(10)

calc(100)


回答:

import math

s = int(input("plz input integer s: "))

val = int(math.sqrt(s*2))

print(val+ (0 if val*(val+1) > 2 * s else 1))

原理在于假设存在使得
1+...+n=n*(n+1)/2=S
本题结果为res,应有res = n + 1
而有n<sqrt(2*S)n1 = int(sqrt(2*S)) 定有n >= n1
考虑到此时可能有n1*(n1+1)=2*S(此时n=n1),故作判断,在特定时刻令res = n1+1 = n+1,否则res = n1 = n+1

以上是 python计算最小自然数N,让从1到N的所有正整数之和大于S(运用while循环,N和S都是变量),并且打印结果。 的全部内容, 来源链接: utcz.com/p/938436.html

回到顶部