-
问题链接:
POJ NOI0105-33 计算分数加减表达式的值
。
-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
编写程序,输入n的值,求 1/1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 - 1/8 + ... + (-1)n-1·1/n 的值。
输入
- 输入一个正整数n。1 <= n <= 1000。 输出
- 输出一个实数,为表达式的值,保留到小数点后四位。 样例输入
-
2
样例输出
-
0.5000
问题分析
一个简单的有规律的序列求和,只不过奇数项为正,偶数项为负。要注意的是程序要尽量简洁,计算尽可能少。
程序说明
输出格式是个要点,用C语言的输出格式通常要简单一些,C++也有自己的一套,估计能记住的人少之又少。
参考链接:(略)
AC的C++语言程序:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int n;
float sum;
cin >> n;
sum = 0;
for(int i=1; i<=n; i++) {
if(i % 2 == 1)
sum += 1.0 / i;
else
sum -= 1.0 / i;
}
cout << fixed << setprecision(4) << sum << endl;
return 0;
}