Harmonic Number LightOJ - 1234

题意:

给你一个调和级数。
f(n)=1+12+13+14+15+...+1nf(n)=1+\frac{1}{2}+\frac{1}{3}+\frac{1}{4}+\frac{1}{5}+...+\frac{1}{n}f(n)=1+21​+31​+41​+51​+...+n1​
要求你求出来。n到达1e8

思路1:

  1. 假如直接暴力的话,时间肯定允许,但是内存肯定MLE。
  2. 所以可以分段进行打表。

反思1:

本题让我学到了 printf(“%.f ”)。f可以代表double也可以float。

AC1

#include <iostream>
#include <cstdio>
#define For(i,x,y) for(int i=(x); i<=(y); i++)
#define fori(i,x,y) for(int i=(x); i<(y); i++)
using namespace std;
const int N = 1e8+10;
const int maxn = 1e6+10;
double ha[maxn];
void table(){double res = 0;fori(i,1,N){res += 1.0/i;if(i%100==0) ha[i/100] = res;}
}
int main()
{//ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);table();int tt, kase = 0; scanf("%d", &tt);while(tt--){double ans = 0;int n; scanf("%d", &n);int st = n/100;ans = ha[st];For(i,st*100+1,n){ans += 1.0/i;}printf("Case %d: %.8f\n", ++kase, ans);}return 0;
}

思路2:

  1. 欧拉爷爷,提出了一个解法。提供了一个欧拉常数
  2. C = 0.57721566490153286060651209(111
  3. f(n)=c+ln(n)+12nf(n)=c+ln(n)+\frac{1}{2n}f(n)=c+ln(n)+2n1​

AC2

#include <iostream>
#include <cstdio>
#include <math.h>//<math.h>
#define For(i,x,y) for(int i=(x); i<=(y); i++)
#define fori(i,x,y) for(int i=(x); i<(y); i++)
using namespace std;
const double c  = 0.57721566490153286060651209;
const int maxn = 1e5+10;
double ha[maxn];
void table(){double res = 0;fori(i,1,maxn){res += 1.0/i;ha[i] = res;}
}
int main()
{int tt, kase = 0; scanf("%d", &tt);table();while(tt--){int n; scanf("%d", &n);double ans = 0;if(n<maxn) ans = ha[n];//For(i,1,n) ans += 1.0/i;else ans = c + log(n) + 1.0/(2*n);printf("Case %d: %.10f\n", ++kase, ans);}return 0;
}

Harmonic Number LightOJ - 1234(暴力分段打表 / 欧拉爷爷的O(1))相关推荐

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

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

  2. LightOJ 1370 Bi-shoe and Phi-shoe(欧拉函数)

    题意:题目给出一个欧拉函数值F(X),让我们求>=这个函数值的最小数N,使得F(N) >= F(X); 分析:这个题目有两种做法.第一种,暴力打出欧拉函数表,然后将它调整成有序的,再建立一 ...

  3. LightOJ 1234 Harmonic Number(调和级数+欧拉常数)

    题目链接:https://cn.vjudge.net/contest/318269#problem/F Sample Input 12 1 2 3 4 5 6 7 8 9 90000000 99999 ...

  4. 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),数据范围太大,如果我们按 照题目中的代 ...

  5. LightOJ1234 Harmonic Number

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

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

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

  7. jzoj3362,bzoj3758-[NOI2013模拟]数数【分段打表,背包,状压】

    正题 bzojbzojbzoj题面链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3758 题目大意 求A∼BA\sim BA∼B中有多少个数满 ...

  8. Harmonic Number 调和级数

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

  9. 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(4)暴力破解HTML表单身份验证

    黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(4)暴力破解HTML表单身份验证 文章目录 黑帽python第二版(Black Ha ...

最新文章

  1. 监控USB设备插入/拔出写法2
  2. findall与match、search区别及小括号的注意事项
  3. 扬尼斯定律:程序员的开发效率每6年提高一倍
  4. 应该如何理解mobx_如何使用mobx观察observable数组上的object.property更改
  5. Python基础笔记(四)
  6. 黑马程序员 oc中的类与对象
  7. coolfire的八篇入门文章(.txt)
  8. 2018-4-25mysql数据库基础
  9. 这知道这个错误是咋回事啊?
  10. Invalid bound statement (not found)错误解决方法
  11. jQuery closest() 方法
  12. Google的通用翻译机能成为未来的巴别鱼吗?
  13. 关于ECharts怎么隐藏掉坐标轴
  14. 软件构造复习——面向对象编程(PPT7)
  15. Torque 4.0 下载、安装、配置、提交作业、列队id归零
  16. windows7开机壁纸_如何在Windows 7上修复黑色墙纸错误
  17. mvc html 多行文本框,asp.net-mvc – 如何在MVC3中为多行文本框创建多个编辑器模板?...
  18. 格创东智当选深圳市工业互联网联盟首批理事单位
  19. 当Kali Rolling作为笔记本唯一一个系统
  20. 中国手机浏览器行业发展模式与投资策略分析报告2022-2028年版

热门文章

  1. sql中完全依赖,部分依赖,传递依赖关系
  2. J2ME(cldc/midp)简介
  3. 自制APP连接OneNET---实现数据监控和下发控制(MQTT)
  4. Oracle产品服务和技术级别的介绍
  5. 疲劳驾驶检测系统的研究
  6. 2019前端最全面试题
  7. Shit Happens
  8. VScode下载安装+使用
  9. python智能语音识别_Python 智能语音识别-Speech搭建和使用
  10. Redis入门权威指北