这道题用c++怎么写?
#include <iostream>
#include <iomanip>//引入标准库
using namespace std;
/*
输入一个大于1且小于 800的奇数n,按照以下公式计算出S(精确到小数点后9位)
S=1-2/3+4/5-6/7+....+n-1/n
分析:式子除去首项分母是连续奇数,分子是连续偶数;
分数项偶数个为负数奇数个为正数;
结果是累和 .
*/
float sum(int n) {
if(n==1) {
return 1;
} else {
float a = n%2 == 0 ? -n*1.0f/(n+1) : n*1.0f/(n+1);
return a + sum(--n);
}
}
int main(int argc, char** argv) {
int n = 0;
float S = 0;
cout << "请输入数字 n = ";
cin >> n;//此处输入验证奇数及范围省略自己补全
cout << setprecision (9); // 精度
cout.setf(ios::fixed,ios::floatfield); // 定点格式
cout << sum(n) << endl;
return 0;
}