没想明白,为什么n=i-1时是对的而n=i时是错的呢

P1035 [NOIP2002 普及组] 级数求和

误差?
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


|