计算1-1/4+1/7-1/10+1/13-1/16+......的前n项之和,n由用户从键盘输入,求大神用c++编程

如题所述

//首先是分析规律 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 a=1; //第一项为1
int flag = 1; //第一项的符号为+
double sum=0.0; //存放结果。
while(i<=n)
{
sum = sum+(flag*1.0)/a;
a=a+3;
flag = -flag;
i++;
}
cout<<sum<<endl; //输出结果
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-18
#include <iostream>
using namespace std;
int main()
{ int i,j,n,sum,flag;
while(true)
{ cout<<"input n:";
cin>>n;
sum=1;
flag=1;
if(n==1) sum=1/sum;
   else
       {
for(i=1,j=1;i<n;i++)
{
j=j+3;
falg=-flag;
sum+=flag*1/(j+3);
}
       }
cout<<sum<<endl;
}
}追问

貌似有错误啊,大神哪里疏忽了?

追答

#include
using namespace std;
int main()
{
int i,j,n,sum,flag;
while(true)
{
cin>>n;
flag=1;
sum=0;
for(i=1,j=1;i<n+1;i++)
{
sum+=flag/j;
flag=-flag;
j=j+3;
} cout<<sum<<endl;

}
return 0;
}

相似回答