题解:B2070 计算分数加减表达式的值

· · 题解

题意

题目传送门

给你一个数 n,让你求 S_n=\frac{1}{1}-\frac{1}{2}+\frac{1}{3}-\frac{1}{4}+\frac{1}{5}-\frac{1}{6}+...+(-1)^{n-1}\times\frac{1}{n} 的值。

做法

很明显是一道循环类型的题,可以一层层的去循环,我们再来看一下题中的公式,发现 i 为奇数加入答案,为偶数减出,所以需要判断奇偶,还有记得保留四位小数,上代码。

Code

#include <iostream>
#include <stdio.h>

using namespace std;
int n;
double ans;

int main() {
    cin>>n;
    for (int i=1;i<=n;i++) {
        if (i%2==0) {//判断奇偶
            ans-=1.0/i;
        } else {
            ans+=1.0/i;
        }
    }
    printf("%.4lf",ans);
}