输入一个正整数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");

}

扩展资料:

利用皮亚诺公理可以对正整数及N*进行如下描述:

任何一个满足下列条件的非空集合叫做正整数集合,记作N*。如果

Ⅰ 1是正整数;

Ⅱ 每一个确定的正整数a,都有一个确定的后继数a' ,a'也是正整数(数a的后继数a‘就是紧接在这个数后面的整数(a+1)。例如,1‘=2,2’=3等等。);

Ⅲ 如果b、c都是正整数a的后继数,那么b = c;

Ⅳ 1不是任何正整数的后继数;

Ⅴ 设S⊆N*,且满足2个条件(i)1∈S;(ii)如果n∈S,那么n'∈S。那么S是全体正整数的集合,即S=N*。(这条公理也叫归纳公理,保证了数学归纳法的正确性)

皮亚诺公理对N*进行了刻画和约定,由它们可以推出关于正整数的各种性质。

参考资料来源:百度百科-正整数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-19

#include <stdio.h>

#include<math.h>


int main()

{

int n,i,fu=1;

float d=1,s=0.0;

 printf_s("请输入正整数n:   ");

scanf_s("%d",&n);

for(i=1;i<=n;i++)

{

fu=fu*(-1);

d=i*3-2;

s-=fu/d;

}

if(i>=n+1) printf_s("\n所求前n项和s=%5.2f\n\n",s);

return 0;

}

运行示例:

本回答被网友采纳
第2个回答  2018-03-16

#include<iostream>

#include<cmath>

using namespace std;

double sum(int a)

{

double s=0;int d=1;

for(int i=1;i<=a;i++)

{

s=s+pow(-1,i+1)*1.0/(d);

d=d+3;

}

cout<<s;

}

int main()

{

int n;

cout<<"请输入整数n:"; 

cin>>n;

sum(n);

return 0;

}

第3个回答  2018-03-16
#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");
}
第4个回答  2018-03-16
Sum[(-1)^(n + 1)/(3 n - 2), {n,1, y}]
y看你要到几了
相似回答