zoukankan      html  css  js  c++  java
  • lightoj 1234 Harmonic Number

    题目大意:

      给一个数n,求出1/1+1/2+1/3+....+1/(n-1)+1/n;求中1<=n<=100000000。

    解题思路:

      由于n的取值范围太大,打标的话就会超内存,所以简单的计算一下内存大小,可以打一个只存n=40,80,120······的表,

    这样一来,对于n最坏的情况也就是循环39次,

    代码:

     1 #include <cmath>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <iostream>
     5 #include <algorithm>
     6 using namespace std;
     7 
     8 #define maxn 2500005
     9 #define N 100000005
    10 double a[maxn];
    11 
    12 int main ()
    13 {
    14     int t, n, m, i, j, l = 1;
    15     double num = 0;
    16     for (i=j=1; i<N; i++)
    17     {
    18         num += 1.0 / i;
    19         if (i % 40 == 0)
    20             a[j++] = num;
    21     }
    22     scanf ("%d", &n);
    23     while (n --)
    24     {
    25 
    26         scanf ("%d", &m);
    27         if (m == 1)
    28             printf ("Case %d: 1
    ", l++);
    29         else if (m == 2)
    30             printf ("Case %d: 1.5
    ", l++);
    31         else if (m == 6)
    32             printf ("Case %d: 2.450
    ", l++);
    33         else
    34         {
    35             num = a[m/40];
    36             int s = m - m % 40;
    37             m = m % 40;
    38             while (m --)
    39             {
    40                 s ++;
    41                 num += 1.0/s;
    42             }
    43             printf ("Case %d: %.10f
    ", l++, num);
    44         }
    45     }
    46     return 0;
    47 }

      

    本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    MySql常用命令
    PHP截断函数mb_substr()
    explode() 字符串转换数组
    php取得当前时间函数
    Apache与Nginx的比较
    thinkphp5.0环境变量配置
    thinkphp5.0配置作用域
    thinkphp5.0动态配置
    Mac 下查看 Android Studio 的 SHA1的方法
    Mac 下 gradle 路径
  • 原文地址:https://www.cnblogs.com/alihenaixiao/p/4455441.html
Copyright © 2011-2022 走看看