修改wordpress站点标题,vr看房制作软件,详情页通用模板,广州注册公司核名题意#xff1a;求f(n)1/11/21/31/4…1/n (1 ≤ n ≤ 108).#xff0c;精确到10-8 (原题在文末#xff09; 知识点#xff1a;调和级数(即f(n))至今没有一个完全正确的公式#xff0c;但欧拉给出过一个近似公式#xff1a;(n很大时)
f(n)≈ln(n)C1/2*n
欧拉常数值…题意求f(n)1/11/21/31/4…1/n (1 ≤ n ≤ 108).精确到10-8 (原题在文末 知识点调和级数(即f(n))至今没有一个完全正确的公式但欧拉给出过一个近似公式(n很大时)
f(n)≈ln(n)C1/2*n
欧拉常数值C≈0.57721566490153286060651209
c math库中log即为ln。
题解:公式f(n)ln(n)C1/(2*n); n很小时直接求此时公式不是很准。 或者用打表做
题目
In mathematics, the nth harmonic number is the sum of the reciprocals of the first n natural numbers: 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
#include iostream
#include cstdio
#include cmath
using namespace std;
const double r0.57721566490153286060651209; //欧拉常数
double a[10000];
int main()
{a[1]1;for (int i2;i10000;i){a[i]a[i-1]1.0/i;}int n;cinn;for (int kase1;kasen;kase){int n;cinn;if (n10000){printf(Case %d: %.10lf\n,kase,a[n]);}else{double alog(n)r1.0/(2*n);printf(Case %d: %.10lf\n,kase,a);}}return 0;
}
记不住公式就打表做
#includeiostream
#includestdio.h
#includestring.h
using namespace std;
const int M1e8;
int t;
int m;
double w[1000010]{0.0};
int main()
{cint;int k1;double s0.0;for(int i1; iM; i){s1.0/i;if(i%1000)w[i/100]s;}while(t--){cinm;int am/100;double answ[a];for(int ia*1001; im; i)ans1.0/i;printf(Case %d: %.10lf\n,k,ans);}return 0;
}