要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和。

如题所述

增加一个变量,用于取反,即可。

#include<stdio.h>

int main(){

int n,i,flag=1;

double sum=0;

printf("请输入数字n:");

scanf("%d",&n);

for(i=1;i<=n;i++,flag*=-1){

sum+=1.0/(3*i-2)*flag;}

printf("sun=%.3f\n",sum);

return 0;

}

扩展资料:

ln(1+x) = x - x^2/2 + x^3/3 - ...

Euler(欧拉)在1734年,利用Newton的成果,首先获得了调和级数有限多项和的值。结果是:

1+1/2+1/3+1/4+...+1/n= ln(n+1)+r(r为常量)

证明是这样的:

根据Newton的幂级数有:

ln(1+1/x) = 1/x - 1/2x^2 + 1/3x^3 - ...

于是:

1/x = ln((x+1)/x) + 1/2x^2 - 1/3x^3 + ...

代入x=1,2,...,n,就给出:

1/1 = ln(2) + 1/2 - 1/3 + 1/4 -1/5 + ...

1/2 = ln(3/2) + 1/2*4 - 1/3*8 + 1/4*16 - ...

参考资料来源:百度百科-调和级数

温馨提示:内容为网友见解,仅供参考
无其他回答

要求编写程序,计算序列1-1\/4+1\/7-1\/10+...的前N项之和。
在编写程序计算序列1-1\/4+1\/7-1\/10+...的前N项之和时,一个巧妙的方法是通过设置一个取反标志。以下是一个简单的C语言实现:为了计算这个交错级数,我们可以利用一个取反变量。以下是代码示例:#include<stdio.h>intmain(){intn,i,flag=1;doublesum=0.0;printf("请输入数字n:");scanf("...

要求编写程序,计算序列 1 - 1\/4 + 1\/7 - 1\/10 + ... 的前N项之和。
int n,i,flag=1;double sum=0;printf("请输入数字n:");scanf("%d",&n);for(i=1;i<=n;i++,flag*=-1){ sum+=1.0\/(3*i-2)*flag;} printf("sun=%.3f\\n",sum);return 0;}

C语言编程:本题要求编写程序,计算序列 1 - 1\/4 + 1\/7 - 1\/10 +...
include<stdio.h>int main(){int n,i;\/\/double sum;\/\/sum没有初始化double sum=0.0;\/\/求和,置sum为0\/\/printf("请输入数字n:",n);\/\/这句逗号后面的n是多余的,不参与输出printf("请输入数字n:");scanf("%d",&n);for(i=1;i<=n;i++){if(i%2==0)\/\/sum=sum-1\/(3*i-2)...

要求编写程序,计算序列 1 - 1\/4 + 1\/7 - 1\/10 + ... 的前N项之和?
算法上没有什么问题,我手头上没有编译器 估计你的问题出在第八行:sum=sum+1.0\/-3(3*i-2)建议改为:sum=sum-1.0\/3(3*i-2)

本题要求编写程序,计算序列 1 - 1\/4 + 1\/7 - 1\/10 + ... 的前N项和...
分析

本题要求编写程序,计算序列 1 - 1\/4 + 1\/7 - 1\/10 + ... 的前N项之...
include <stdio.h> int main(){ double s=0,d=-1.0;int a,b;scanf("%d",&a);b=(a-1)*3+1;for(int j=1; j<=b; j=j+3){ d=-d;s=d\/j+s;} printf("sum = %.3lf\\n",s);return 0;}

用C++语言写1-1\/4+1\/7-1\/10...的前n项和,请问我那里写错了?为什么我的...
item和sum不能设为int型,实数要是float。include<stdio.h> int main(void){ int n,i,flag=1;float item,sum=0;printf("Enter n");scanf("%d",&n);for(i=1;i<=n;i=i+3){ item=flag*(1.0\/i);sum=sum+item;flag=-flag;} printf("sum=%f\\n",sum);return 0;} ...

c语言编程序 \/*计算1-1\/4+1\/7-1\/10+1\/13-1\/16…共n项之和*\/
int main(void){ double n,sum,i,k;sum=0;k=1;printf("Enter n: ");scanf("%lf",&n);for(i=1;i<=n;i++){ sum=sum+k\/(3*i-2);k=-k;} printf("sum=%.3f",sum);return 0;} 输入形式 从键盘输入一个正整数n。输入输出样例1(下划线部分表示输入)Enter n:3 sum=0.893...

...n,计算1-1\/4+1\/7-1\/10+1\/13-1\/16+...前n项之和.(保留两位小数)_百度...
用一个for单循环就可以解决。include <stdio.h> include <stdlib.h> void main(){ int n;double x=0.0;int s=-1;printf("n=");scanf("%d",&n);for(int i=1;i<=n;i++){ s=s*(-1);x=x+s*1.0\/(3*(i-1)+1);} printf("%.2f",x);system("pause");} ...

计算1-1\/4+1\/7-1\/10+1\/13-1\/16+...的前n项之和,n由用户从键盘输入,求...
\/\/首先是分析规律 1可以看作是 1\/1 1\/4 分母是等差数列是 1 4 7 10 13相差为3 \/\/另外符号是 正 负 正 负这样 include <iostream> using namespace std;int main(){ int n;cin>>n; \/\/输入N的值 if(n<=0) \/\/如果输入的是0或者负数 cout<<"input error!";int i=1;int ...

相似回答
大家正在搜