LightOJ-1234
来源:互联网 发布:同花顺选股编程 编辑:程序博客网 时间:2024/06/03 23:46
///题意:求一个数的调和级数;///思路:在1e8的范围内进行分块打表#include<cstdio>using namespace std;const int maxn=1e8;const int maxn1=2e6+7;///卡了一部分内存;int cnt=0;double a[maxn1];void init(){ double ans=0; a[0]=0;///可能它的数比最小的单位还要小,所以将a[0]=0可能出错; for(int i=1;i<=maxn;i++) { ans+=1.0/i; if(i%50==0) a[++cnt]=ans;///以50为一个单位进行分块进行累加和;(在50的倍数以前都加过了) }}int main(){ init(); int n,t; scanf("%d",&t); for(int cas=1;cas<=t;cas++) { scanf("%d",&n); double ans=a[n/50]; for(int i=n/50*50+1;i<=n;i++)///累加两个相邻的50的倍数之间的小数; ans+=1.0/i; printf("Case %d: %.10f\n",cas,ans); } return 0;}///这是网上的一个很骚的版本,欧拉函数的一些的应用,注意这个euler在很小的范围内精度损失较大,所以在前一部分数的时候枚举一部分就好了;///得到的是一个近似值;所以才有取多少位小数的ope;/*#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<cmath>using namespace std;const int maxn=1e5+7;double x[maxn];const double C = 0.57721566490153286060651209;int cnt=0;void ac(){ x[cnt++] = 0; double ans = 0; for(int i=1;i<=100000;i++) { ans += 1.0 / i; x[cnt++] = ans; }}int main(){ int t; scanf("%d",&t); ac(); for(int i=1;i<=t;i++) { int n; scanf("%d",&n); double ans = 0; if(n<100000) ans = x[n]; else ans = log(n) + C +1 / (2.0*n); printf("Case %d: %.10f\n",i,ans); } return 0;}*/
阅读全文
0 0
- LightOJ 1234
- lightoj 1234
- LightOJ-1234
- lightOJ 1234 Harmonic Number
- LightOJ 1234 Harmonic Number
- LightOj 1234 Harmonic Number
- LightOj 1234(调和级数求和)
- LightOJ 1234Harmonic Number
- LightOJ 1234 Harmonic Number
- lightoj 1234 Harmonic Number
- LightOJ 1234 Harmonic Number
- lightoj-1234-调和级数
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- DB2达到最大连接数后,无法连接到数据库解决办法
- Using visual C++ to create a simple image and masker tool kit
- vsftp之必要的安装目录与交叉编译问题
- iOS和Android终级C++编译优化
- 再谈文章字数与seo的关系
- LightOJ-1234
- 二叉树的遍历
- LightOJ-1220
- 几种常用加密算法比较
- The value for the useBean class attribute XXX is invalid 异常解释
- 一些不错的学习网站
- Go实战--golang中使用图片和验证码(dchest/captcha)
- ‘struct net_device’ has no member named ‘trans_start’ ubuntu16.04
- IIS应用程序池自动回收问题的有效解决办法