zoukankan      html  css  js  c++  java
  • Harmonic Number (II)

    Harmonic Number (II)
    Time Limit: 3 second(s) Memory Limit: 32 MB

    I was trying to solve problem '1234 - Harmonic Number', I wrote the following code

    long long H( int n ) {
        long long res = 0;
        for( int i = 1; i <= n; i++ )
            res = res + n / i;
        return res;
    }

    Yes, my error was that I was using the integer divisions only. However, you are given n, you have to find H(n) as in my code.

    Input

    Input starts with an integer T (≤ 1000), denoting the number of test cases.

    Each case starts with a line containing an integer n (1 ≤ n < 231).

    Output

    For each case, print the case number and H(n) calculated by the code.

    Sample Input

    Output for Sample Input

    11

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    2147483647

    Case 1: 1

    Case 2: 3

    Case 3: 5

    Case 4: 8

    Case 5: 10

    Case 6: 14

    Case 7: 16

    Case 8: 20

    Case 9: 23

    Case 10: 27

    Case 11: 46475828386

     题意:就是计算所给的函数的值,但是咱们如果按函数那种算法会TLE,so

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    
    using namespace std;
    
    int main()
    {
        int t, n, l = 1;
        scanf("%d", &t);
        while(t--)
        {
            scanf("%d", &n);
            long long k = sqrt(n);
            long long res = 0;
            for(int i = 1; i < k+1; i++)
            {
                res += n /i;
                if(n/i > n / (i+1))
                    res += (n/i - n / (i+1))*i;
                if((k*k + i - 1) == n)  // 在k*k到k*k+k-1中的数多加了k,so减去
                {
                    res -= k;
                }
            }
            printf("Case %d: %lld
    ", l++, res);
        }
        return 0;
    }
    

      

  • 相关阅读:
    STL"源码"剖析
    Excel如何进行SVN
    BootstrapTable+KnockoutJS
    WebApi 集成 Swagger
    Java Core和HeapDump
    深入分析 Java 中的中文编码问题(1)
    Java编码浅析(注意区分三个概念)(转)
    理解并解决GBK转UTF-8奇数中文乱码(转)
    Java实现敏感词过滤(转)
    Android MediaPlayer状态机
  • 原文地址:https://www.cnblogs.com/Tinamei/p/4948057.html
Copyright © 2011-2022 走看看