LightOJ 1234 Harmonic Number
2016-03-20 23:20
309 查看
D - Harmonic Number
Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu
Submit Status Practice LightOJ 1234
Description
In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers:
![](http://images2015.cnblogs.com/blog/917714/201604/917714-20160421105640163-1712474939.jpg)
![](http://images2015.cnblogs.com/blog/917714/201604/917714-20160421105650085-1586910188.jpg)
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
思路:就是求Hn那个公式的和 直接暴力会超内存 只存n/50个数就可以了 需要哪个数再算就好了
Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu
Submit Status Practice LightOJ 1234
Description
In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers:
![](http://images2015.cnblogs.com/blog/917714/201604/917714-20160421105640163-1712474939.jpg)
![](http://images2015.cnblogs.com/blog/917714/201604/917714-20160421105650085-1586910188.jpg)
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
思路:就是求Hn那个公式的和 直接暴力会超内存 只存n/50个数就可以了 需要哪个数再算就好了
#include <iostream> #include <math.h> #include <stdio.h> const int N=1e8+10; using namespace std; double a[N/50+10]; int main() { int i,n,t,k=1; double sum=1.0; a[0]=0.0; a[1]=1.0; for(i=2;i<=N;i++) { sum+=1.0/double(i); if(i%50==0) a[i/50]=sum; } cin>>t; while(t--) { cin>>n; int b=n/50; double ans=a[b]; for(i=b*50+1;i<=n;i++) ans+=1.0/double(i); printf("Case %d: %.10lf\n",k++,ans); } return 0; }
相关文章推荐
- 固定位数和精度的浮点数处理对象Decimal
- Swift语言学习笔记(3)
- crond job curl 运行单参数的url出错
- Jfinal 实现从数据库中提取图片
- 2016春季练习——优先队列的一个神奇用法
- 程序员面试资源大收集
- 2502: How many roses can he buy?
- PHP之cookie
- Qt正则表达式笔记
- 若果有个100M大文件,需要上传至服务器,服务器表单最大上传2Mb,求解
- bzoj 2330: [SCOI2011]糖果
- Problem A: 童年生活二三事
- Java - 序列化与反序列化
- 5. Longest Palindromic Substring | Java最短代码实现
- awk使用
- Chapter 5 图像复原和重建
- Git 命令详解
- Python中列表、字典、元组数据结构的简单学习笔记
- Java - IO
- Python基础--构造函数