永发信息网

编写程序,求1/2+1/4+1/6+...的前n项和

答案:1  悬赏:0  手机版
解决时间 2021-12-22 13:14
  • 提问者网友:放下
  • 2021-12-22 04:00
编写程序,求1/2+1/4+1/6+...的前n项和
最佳答案
  • 五星知识达人网友:慢性怪人
  • 2021-12-22 04:47
这道题简单:

因为正常的判题系统1秒可以跑百10的7次方

所以,分两种情况:

(1)当 n<=10^6时,暴力求解,即:

double sum=0;
for(int i=2;i<=n;i+=2){
sum+=1.0/i;

}

(2)当n>10^6时,用欧拉公式,即:

利用“欧拉公式”(可以查阅相关书籍):1+1/2+1/3+……+1/n=ln(n)+C,C为欧拉常数 数值是0.5772…,例如:
则1+1/2+1/3+1/4+...+1/2007+1/2008=ln(2008)+C=8.1821(约)

而你此处,
1/2+1/4+1/6+... 可以看作( 1+ 1 / 2 + 1/4 +.... +1/(n/2) ) /2
也就是 ln(n/2)+c,c为常数。

以上,注意你的n应该是偶数吧,另外,10^6这个阈值不是固定的,当n越大时利用欧拉公式越度精确
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯