其他分享
首页 > 其他分享> > 调和级数求和

调和级数求和

作者:互联网

题目:

已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。

输入:

k

输出;

n

打表AC

#include<stdio.h>
int main() {
	int n;
	int a[]= {1,2,4,11,31,83,227,616,1674,4550,12367,33617,91380,248397,675214,1835421};
	scanf("%d",&n);
	printf("%d\n",a[n]);
	return 0;
}

等效替代:
Sn ≈ ln(n+1) + r
Euler近似地计算了r的值,约为0.5772156649。

#include<stdio.h>
#include<math.h>
const double gamma_ = 0.5772156649;
int k, n;
int main(){
    scanf("%d", &k);
    n = exp(k - gamma_) + 0.5;
    printf("%d\n", n);
    return 0;
}

标签:0.5772156649,return,求和,调和级数,int,Sn,printf,include
来源: https://blog.csdn.net/qq_44009311/article/details/99947219