一、题目链接
http://noi.openjudge.cn/ch0105/33/
二、解题思路
◎ 将每一项循环累加到和上,同时计算下一项,下一项的符号为当前项的相反数。
三、实施步骤
◎ 首先,定义并输入int类型的整数n,代表最后一项的编号;
◎ 其次,定义int类型的整数sign,代表每一项的符号,初始时sign为1;
◎ 然后,定义double类型的浮点数ans,代表分数加减表达式的和,初始时ans为0;
◎ 第四,通过标记i代表每一项的编号,i从1开始,到n为止,更新步长为1,循环处理如下:
→ 令ans=ans+1.0*sign/i,sign=-sign;
◎ 最后,保留4位小数输出ans。
四、C++程序
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int sign = 1;
double ans = 0;
for (int i = 1; i <= n; i++)
{
ans = ans + 1.0 * sign / i;
sign = -sign;
}
printf("%.4f", ans);
return 0;
}