P1035级数求和

原题:
P1035 [NOIP 2002 普及组] 级数求和
解:

这道题考虑用模拟的方法

直接计算s的值

max O(n) = 1.83542e+06

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <bits/stdc++.h>
using namespace std;
int main(){
int k;
cin >> k;
double n = 1;
double s = 0;
while(s<=k){
s += 1/n;
// cout << s << endl;
n++;
}
cout << n-1;//执行后会多出一个1,减去
return 0;
}

事实上,因为k值只有50种可能,你完全可以算完打表,把时间复杂度降为O(1)