题目链接:https://cn.vjudge.net/contest/318269#problem/F
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

翻译:给你一个n,求f(n)=1/1+1/2+…+1/n;(即求n的调和级数)

分析: n (1 ≤ n ≤ 108),打表会超时。

1.用欧拉公式求:

调和级数(即f(n))至今没有一个完全正确的公式,但欧拉给出过一个近似公式:(n很大时)

  f(n)≈ln(n)+C+1/2*n    欧拉常数值:C≈0.57721566490153286060651209c++ math库中,log即为ln。

:n很小时直接求,此时公式不是很准。
代码

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define C 0.57721566490153286060651209
#define N 10000
double a[N];
int n;
void solve()
{a[1]=1;for(int i=2; i<N; i++)a[i]=a[i-1]+1.0/i;
}
int main()
{int T,k=1;scanf("%d",&T);solve();while(T--){scanf("%d",&n);if(n<N){printf("Case %d: %.10lf\n",k++,a[n]);continue;}double x=log(n)+C+1.0/(2*n);printf("Case %d: %.10lf\n",k++,x);}return 0;
}

2.打表水过(每40个数记录一次结果)
代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 100000001
double a[2500001]={0.0,1.0};
void solve()
{memset(a,0,sizeof(a));double s=1.0;for(int i=2; i<N; i++){s+=(1.0/i);if(i%40==0)/*每40个数记录一次结果*/a[i/40]=s;}
}
int main()
{int T,f=1;scanf("%d",&T);solve();while(T--){int n;scanf("%d",&n);printf("Case %d: ",f++);int x=n/40;double sum=a[x];for(int i=40*x+1;i<=n;i++)sum+=(1.0/i);printf("%.10lf\n",sum);}return 0;}

LightOJ 1234 Harmonic Number(调和级数+欧拉常数)相关推荐

  1. Harmonic Number(调和级数+欧拉常数)

    题意:求f(n)=1/1+1/2+1/3+1/4-1/n(1≤n≤108)精确到10−8f(n)=1/1+1/2+1/3+1/4-1/n (1 ≤ n ≤ 10^8)精确到10^{-8}f(n)=1/ ...

  2. Harmonic Number(欧拉公式或技巧打表)LightOJ - 1234(求调和级数的和)

    题意:求f(n)=1/1+1/2+1/3+1/4-1/n (1 ≤ n ≤ 108).,精确到10-8 (原题在文末) 知识点:调和级数(即f(n))至今没有一个完全正确的公式,但欧拉给出过一个近似公 ...

  3. Harmonic Number 调和级数

    今天做了一道关于调和级数的题目,之前接触有关级数的"神马"还是在高数上,当时只是研究了调和级数的发散还是收敛等关系,10^8那么大的数据正常跑肯定会超时不是,一直都不知道对于这个伟 ...

  4. LightOJ 1245 - Harmonic Number (II)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1245 题意:仿照上面那题他想求这么个公式的数.但是递归太慢啦.让你找公式咯. ...

  5. LightOJ - 1245 Harmonic Number (II) 求同值区间的和

    题目大意:对下列代码进行优化 long long H( int n ) {     long long res = 0;     for( int i = 1; i <= n; i++ )   ...

  6. Harmonic Number (II) LightOJ - 1245(找规律?大数f(n)=n/1+n/2+n/3+......+n/n)

    题意:让我们求f(n)=n/1+n/2+n/3+......+n/n:同时注意n/i取整: 思路:首先我们先看数据的范围,n (1 ≤ n < 2 31),数据范围太大,如果我们按 照题目中的代 ...

  7. LightOJ1245 Harmonic Number (II) —— 规律

    题目链接:https://vjudge.net/problem/LightOJ-1245 1245 - Harmonic Number (II)     PDF (English) Statistic ...

  8. Harmonic Number LightOJ - 1234(暴力分段打表 / 欧拉爷爷的O(1))

    Harmonic Number LightOJ - 1234 题意: 给你一个调和级数. f(n)=1+12+13+14+15+...+1nf(n)=1+\frac{1}{2}+\frac{1}{3} ...

  9. LightOJ1234 Harmonic Number

    1 /* 2 LightOJ1234 Harmonic Number 3 http://lightoj.com/login_main.php?url=volume_showproblem.php?pr ...

最新文章

  1. AI大神李沐B站走红!连博导们都在追更,还亲自带你逐段读懂论文,网友:带B站研究生吧...
  2. shodan 渗透测试 漏洞挖掘 一些用法
  3. 通过path绘制点击区域
  4. 计算机硬件基础大纲,计算机硬件基础教学大纲..docx
  5. kafka报错 WARN Session 0x0 for server null, unexpected error, closing socket connection
  6. python曲线图局部放大_python放大图片和画方格实现算法
  7. 800道Python习题,花了一个月终于整理出来了,挑战一下自己能做对多少题
  8. 写给大学男同胞的几条择偶建议
  9. 凸集 凸函数 判定凸函数
  10. Tomcat SSL Failed to load keystore type JKS with path 系统找不到指定文件
  11. 12-Azido-1-dodecanol,57395-51-4,12-叠氮-1-十二醇点击化学试剂结构式分析
  12. 前端调用后台验证码接口
  13. [UER#6 C]逃跑
  14. 达人评测 华为MatePad2和华为MatePad2 Pro 怎么样
  15. win10+1080Ti+双硬盘(SSD+HDD)下安装Ubuntu16.04双系统
  16. 美团java工程师,成都外包面试笔试题
  17. 百度谷歌关键词排名的小技巧,SEO小技巧
  18. 怎么将JPG格式的图片转换成PDF文件?
  19. 雷达原理 | 用MATLAB信号处理是如何解算目标的距离和速度信息的?
  20. 轻雀协作应用场景模板之【请假流程管理】请假、审批so easy

热门文章

  1. 项目管理中快速制定高质量目标四个步骤
  2. Cesium绘制军标-集结地
  3. 硬件知识收集总结---20210811
  4. linux 空间大小不对,df -h和fdisk -l得出的硬盘空间大小不一样
  5. 夯实Java基础系列18:深入理解Java内部类及其实现原理
  6. Linux Unix 的档案存取权限,Ubuntu设置目录的读写权限(Linux命令chmod 777 dirName)
  7. 很全面的WinRAR实用技巧系列 - imsoft.cnblogs
  8. 小米MI2电信版16G无法连接XP的电脑
  9. 有限理性建模的方法和计算机平台,有限理性假设下的多方计算协议建模与仿真...
  10. 7-24 病毒变种 (10 分)解法超简单