从第一项开始累加调和级数,直到和严格大于给定整数 K。
OJ: noi_openjudge
题目 ID: ch0105-27
难度:入门
标签:循环模拟数学python
日期: 2026-07-30 23:01
题意
求最小的正整数
思路
从第 term 表示当前加入的是第几项,total 表示已经得到的级数和。
循环条件必须写为 total <= threshold:题目要求的是严格大于 term 就是最小答案。
代码
Python代码
python
threshold = int(input())
total = 0.0
term = 0
while total <= threshold:
term += 1
total += 1 / term
print(term)C++代码
cpp
#include <cstdio>
int main(){
int k;
scanf("%d",&k);
double sum = 0,kk = k;
int i;
for (i=1;1;i++){
sum += 1.0/i;
if( sum > k){
printf("%d",i);
return 0;
}
}
return 0;
}复杂度
设答案为
总结
处理“最小位置使条件成立”时,先写清结束条件是否包含等号,能避免典型的边界错误。