Friday, 28 July 2017

Lightoj 1234 - Harmonic Number

  1. #include <cstdio>
  2. using namespace std;
  3. #define MS 100000
  4. int main(){
  5.     //freopen("input.txt", "r", stdin);
  6.     int test, cs= 1;
  7.     int n;
  8.     double h[MS+1];
  9.     scanf("%d"&test);
  10.     h[0] = 0.0;
  11.     double nh = 1.0;
  12.     int ind = 1000;
  13.     for(int i = 2; i <= 100000000; i++){
  14.         nh += 1.0/i;
  15.         if(== ind){
  16.             h[ind/1000] = nh;
  17.             ind += 1000;
  18.         }
  19.     }
  20.  
  21.     while( test-- ){
  22.         scanf("%d"&n);
  23.         nh = h[n/1000];
  24.         for(int i = (n/1000) * 1000 + 1 ; i <= n; i++)
  25.             nh += 1.0/i;
  26.         printf("Case %d: %.10lf\n", cs++, nh );
  27.     }
  28.     return 0;
  29. }

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...