谁来帮帮我┭┮﹏┭┮

  1. 调和级数
    题目ID:7834必做题100分
    最新提交:
    Time Limit Exceeded
    0 分
    历史最高:
    Time Limit Exceeded
    0 分
    时间限制: 1000ms
    空间限制: 524288kB
    题目描述
    有一等式
    s
    =
    1
    1

1
2
+
1
3
+
1
4
+

+
1
n
s=
1
1

+
2
1

+
3
1

+
4
1

+…+
n
1

对于给定的
k
k,请问 s ≥ k 时,n 的最小值为多少。

输入格式
一行,一个正整数
k
k,表示给定的
k
k 值。

输出格式
一个整数。

样例
Input 1
2
Output 1
4
数据范围
1


k

15

1 ≤k≤15

1 个赞

格式炸了

1 个赞

@桂景琛 这while(for也行):

int s=0,i=0;;
cin>>...;
while(...){
     i++;
     s+=1.0/i;
}
cout<<i;

1 个赞

直接用1分别除以分母就行了,找分母规律,用for嵌套if就行了.

1 个赞

用double

1 个赞

太乱了吧

思路:

  1. 需要找到使得表达式 s = 1/1 + 1/2 + 1/3 + 1/4 +... + 1/n >= k 成立的最小的 n
  2. 首先,我们从 n = 1 开始,逐步增加 n 并计算累加和 s
  3. 在每次循环中,将 1 / n 累加到 s 中,并检查 s 是否大于或等于给定的 k
  4. 如果 s 还小于 k,就继续增加 n 并累加下一项。
  5. 一旦 s 大于或等于 k,此时的 n - 1 就是我们要找的最小值,因为在累加最后一项使得 s 超过 k 时,这一项不应该被计入。
1 个赞

上课好好听讲 别光论坛

你们现在在上课?

在哪里上课

一初东门四班

我在一高上拔高班 :joy:

有点实力

格式得好好改改

2 个赞

利用调和级数公式算出答案

核心代码

ans = exp(n - gamma) + 0.5