zzuli2183: 就是签到题XD(欧拉常数)
2017-08-25 21:47
441 查看
传送门->点我
Description
In mathematics, we suppose that f(1)=1, f(i)-f(i-1)=1/i, (2<=i<=n)
调和级数(即f(n))至今没有一个完全正确的公式,但欧拉给出过一个近似公式:(n很大时)
f(n)≈ln(n)+C+1/2*n
欧拉常数值:C≈0.57721566490153286060651209
c++ math库中,log即为ln。
但是n很小是直接求
贴代码:
Description
In mathematics, we suppose that f(1)=1, f(i)-f(i-1)=1/i, (2<=i<=n)
Input
Input starts with an integer T (≤ 10000), denoting the number of test cases.Each case starts with a line containing an integer n (2 ≤ n ≤10^7).Output
For each case, print the case number and the value of f(n). The answer should be rounded to 10 decimal places.Sample Input
3234Sample Output
Case 1: 1.5000000000Case 2: 1.8333333333Case 3: 2.0833333333题意:求f(n)=1/1+1/2+1/3+1/4…1/n,精确小数点后10位知识点:调和级数(即f(n))至今没有一个完全正确的公式,但欧拉给出过一个近似公式:(n很大时)
f(n)≈ln(n)+C+1/2*n
欧拉常数值:C≈0.57721566490153286060651209
c++ math库中,log即为ln。
但是n很小是直接求
贴代码:
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define inf 0x3f3f3f3f #define maxn 10000011 double r = 0.57721566490153286060651209; double a[10005]; int main() { a[1] = 1; for(int i=2; i<=10000; i++) a[i] = a[i-1] + 1.0/i; int t; scanf("%d",&t); for (int cas=1; cas<=t; cas++) { int n; scanf("%d",&n); if(n <= 10000) printf("Case %d: %.10lf\n",cas,a ); else { double sum; sum = log(n) + r + 1.0/(2*n); printf("Case %d: %.10lf\n",cas,sum); } } }
相关文章推荐
- zzuli 2183 就是签到题XD【分段打表】
- 河南省多校连萌(五)【zzuli 2183 就是签到题XD】
- 河南省多校连萌(五) Problem B: 就是签到题XD
- zzuli 2182 不是签到题XD【数论定理】
- 2182: 不是签到题XD
- 《士兵突击》就是一部最好的管理与领导的教科书
- UmlGraph可以将由源代码生成的UML图表(这里就是类图)嵌入在javadoc中,这样的好处就是不需要人工维护,每次都是从源代码自动生成。
- 多做一些事又不会死------再论“吃亏就是占便宜”
- 赚钱本身就是人生目的
- 不知道是谁说过“我就是你的双耳”
- 大佬就是矫情!昨天小米4面世,今天雷军又发内部信了!
- 其实,学习编程的过程就是学习造轮子的过程,还是拥抱造轮子吧
- 生活就是喜忧参半
- 寓言说这就是你呀
- mfc中,当点击一个button后,如何使其它某些button变为不可用啊?也就是变灰!
- [30] 简单就是美
- 使用Method swizzling (也就是运行时交换两个方法的imp ,实现重写方法)
- 这就是做生意
- [C++] 几行代码生成漂亮图片,数学家就是牛!
- 【新媒体讨论】关联趋势和“就是不服”