使用C++编写程序:
题目描述
输入一个整数n,输出数列1-1/3+1/5-……前n项的和。
输入
输入只有一个整数n。
输出
结果保留2为小数,单独占一行。
样例输入 Copy
3
样例输出 Copy
0.87
程序代码如下:
#include<iostream>
#include<iomanip> //fixed和setprecision()的头文件
#include<cmath> //pow的头文件
#define ElemType_I int
#define ElemType_D double
using namespace std;
class SeqSum
{
public:
SeqSum(ElemType_I N) :Number(N) {};
void GetResult();
private:
ElemType_I Number;
ElemType_D Sum = 0;
};
inline void SeqSum::GetResult()
{
for (int i = 1; i <= Number; i++)
Sum += pow(-1, i - 1) / (2 * i - 1);
cout << fixed << setprecision(2) << Sum;
}
int main()
{
ElemType_I n;
cin >> n;
SeqSum Sum_1(n);
Sum_1.GetResult();
return 0;
}
/*类模板
template<class ElemType_1, class ElemType_2>
class SeqSum
{
public:
SeqSum(ElemType_1 N) :Number(N) {};
void GetResult();
private:
ElemType_1 Number;
ElemType_2 Sum = 0;
};
template<class ElemType_1, class ElemType_2>
inline void SeqSum<ElemType_1, ElemType_2>::GetResult()
{
for (int i = 1; i <= Number; i++)
Sum += pow(-1, i - 1) / (2 * i - 1);
cout << fixed << setprecision(2) << Sum;
}
int main()
{
ElemType_I n;
cin >> n;
SeqSum<ElemType_I, ElemType_D> Sum_1(n);
Sum_1.GetResult();
return 0;
}
*/