本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + … 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后三位。题目保证计算结果不超过双精度范围。
输入样例:
10
输出样例:
sum = 0.819
代码一:
#include<stdio.h>
int main()
{
double i,sum;
sum=0;
int n;
scanf("%d",&n);
for(i=1;i<=3*n-2;i+=3){
sum=sum+pow(-1,i+1)*1.0/i;}
printf("sum = %.3f",sum);
return 0;
}
代码二:
#include <stdio.h>
int main(){
int n,i=1,a=1;
double s;
scanf("%d",&n);
for(i=1;i<=n*3-2;i+=3){
s += a*1.0/i;
a=-a;
}
printf("sum = %.3f",s);
}
代码四:
#include <stdio.h>
int main()
{
int N;
double S = 0;
int flag=0;
int i;
scanf("%d",&N);
for(i=1;flag<N;i+=3){
if(flag%2==0){
S+=1.0/i;
}else{
S+=-1*1.0/i;
}
flag++;
}
printf("sum = %.3lf",S);
return 0;
}
代码五:
#include <stdio.h>
int main()
{
int N,i=0;
double S=0;
scanf("%d",&N);
while(i<N){
i++;
if(i%2==0){
S=S-(double)1/(3*i-2);
}
else{
S=S+(double)1/(3*i-2);
}
}
printf("sum = %.3f",S);
return 0;
}
代码六:
#include<stdio.h>
int main(){
int i,a,j=1;
double s=0,m=1;
scanf("%d",&a);
for(i=1;i<=a;i++,m+=3,j=-j){
s+=1/m*j;
}
printf("sum = %.3lf",s);
return 0;
}