http://lightoj.com/volume_showproblem.php?problem=1234

Harmonic Number

Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu

Description

In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers:

In this problem, you are given n, you have to find Hn.

Input

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

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

Output

For each case, print the case number and the nth harmonic number. Errors less than 10-8 will be ignored.

Sample Input

12

1

2

3

4

5

6

7

8

9

90000000

99999999

100000000

Sample Output

Case 1: 1

Case 2: 1.5

Case 3: 1.8333333333

Case 4: 2.0833333333

Case 5: 2.2833333333

Case 6: 2.450

Case 7: 2.5928571429

Case 8: 2.7178571429

Case 9: 2.8289682540

Case 10: 18.8925358988

Case 11: 18.9978964039

Case 12: 18.9978964139

题目大意:

求1 + 1/2 + 1/3 + 1/4 + 1/ 5 +...+ 1/ n(1 ≤ n ≤ 108)

调和级数部分和,可以利用公式,(唉,然而我并不记得公式高数没学好-_-||)

如果直接循环的肯定会超时,那么我们开一个10^8/40 = 250万的数组用来分别存

1到1/40的和、1到1/80的和、1到1/120的和、1到1/160的和、... 、1到1/2500000的和

这样对于每一个n最多循环39次,节省了时间

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm> using namespace std;
const int N = ;
const int M = 1e8 + ;
typedef long long ll; double a[N]; int main()
{
int t, n, p = ;
double s = ;
for(int i = ; i < M ; i++)
{
s += (1.0 / i);
if(i % == )
a[i / ] = s;
}
scanf("%d", &t);
while(t--)
{
p++;
scanf("%d", &n);
int x = n / ;
s = a[x];
for(int i = x * + ; i <= n ; i++)
s += (1.0 / i);
printf("Case %d: %.10f\n", p, s);
}
return ;
}

最新文章

  1. 年度巨献-WPF项目开发过程中WPF小知识点汇总(原创+摘抄)
  2. 理解Compressed Sparse Column Format (CSC)
  3. Java--静态区域块
  4. [改善Java代码]线程优先级只使用三个等级
  5. ios文本框基本使用,以及所有代理方法的作用
  6. localhost或本机ip无法连接数据库问题解决与原因
  7. C#图解 (类和继承)
  8. python_web框架
  9. php 生成xml文件
  10. ViewpageMaiActity
  11. android项目结构
  12. nginx;keepalived配置出现主主的解决方法(脑裂问题)
  13. RPC、RMI、SOAP、WSDL的区别详解
  14. Quectel module USB driver for linux
  15. NPOI2.2.0.0实例详解(十一)—向EXCEL插入图片
  16. python 书籍推荐 二
  17. Training Logisches Denken
  18. ASp.Net控件的生命周期
  19. div的隐藏占用空间位置关系
  20. mysql 读写分离,主从同步 理论

热门文章

  1. Oracle11gr2_ADG管理之在备库上模拟failover的过程实战
  2. 自动补齐flexselect+级联下拉框案例
  3. ubuntu10.10手工安装jdk1.6
  4. quartz简介
  5. 英文单词cipher 和password的区别,用法有什么不同,
  6. Codeforces 76D 位运算
  7. Tomcat安装 以Linux 分支 Ubuntu Server 为例
  8. centos 6.5 部署openvpn 2.4
  9. Webdings和Wingdings字符码对应表
  10. 40 Questions to test your skill in Python for Data Science