博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Harmonic Number (II)
阅读量:5972 次
发布时间:2019-06-19

本文共 1525 字,大约阅读时间需要 5 分钟。

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
#include
#include
#include
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\n", l++, res); } return 0;}

  

转载于:https://www.cnblogs.com/Tinamei/p/4948057.html

你可能感兴趣的文章
并发串行调用接口
查看>>
C# 视频监控系列 序 [完]
查看>>
Mongodb3.0.5副本集搭建及spring和java连接副本集配置
查看>>
FileStream大文件复制
查看>>
TDD 的本质不是 TDD
查看>>
linux命令学习——ps
查看>>
freemark 判断list是否为空
查看>>
JS的一些扩展:String、StringBuilder、Uri
查看>>
solr的suggest模块
查看>>
2PHP页面缓存
查看>>
编译原理 LL1文法First集算法实现
查看>>
《Java并发编程实战》学习笔记 任务执行和取消关闭
查看>>
菜鸟学Linux命令:bg fg jobs命令 任务管理
查看>>
python 多线程就这么简单(续)
查看>>
【Linux系统编程】 Linux系统调用概述
查看>>
SQL Server Reporting Services:无法检索应用程序文件。部署中的文件已损坏
查看>>
hive中partition如何使用
查看>>
查看mysql数据库版本方法总结
查看>>
大牛手把手教你做日历(建议你看看,你会有收获的)
查看>>
Django中的ORM
查看>>