误差?
by zjh114514 @ 2024-03-10 16:30:55
@[hgdhjgj](/user/1290501) 我也不懂,这个简直太抽象了这个题```cpp
#include <iostream>
using namespace std;
int main() {
double Sn = 0;
int k = 0;
cin >> k;
double n = 1;
for (; Sn < k; ++n) {
Sn += 1.0 / n;
}
cout << n - 1; // n减1才是满足条件的最小值
return 0;
}
```
这个是对的我自己写的那个代码反而是错的???我请问呢???
by rrrstj @ 2024-04-11 21:12:42
呃......
by ruihang @ 2024-04-13 11:52:45
@[hgdhjgj](/user/1290501) 如果把
```cpp
n=i-1;
```
和
```cpp
i++;
```
调换一下顺序也能过,因为i是从1开始的
by AnnaQ @ 2024-04-21 11:50:39
@[AnnaQ](/user/959411) 然后得把 $n=i-1$ 后边的 $-1$ 删掉
by AnnaQ @ 2024-04-21 11:52:54
你随便举个例子就知道,当sum=1+1/2成立时,n等于2,但是因为你的i++在下面,导致i又自增一次,i变成了3,输出3就错了
by gwg666 @ 2024-05-03 20:25:24