【题目描述】
编写程序,输入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)(1<=n<=1000)
【输出】
输出一个实数,为表达式的值,保留到小数点后四位。
【输入样例】
2
【输出样例】
0.5000
分析题目
我们发现运算符并不一样,按一个加一个减顺序直到1/n,所以我们可以定义个布尔值来判断是加是减。
#include<bits/stdc++.h> //导入头文件
using namespace std;
int main(){
int n; //定义n变量
double sum=1,i_2;
bool ft = true;
cin>>n;
for(int i=2;i<=n;i++){
//如果ft的值是true,则减,如果ft的值是false,则加
if(ft){
i_2 = (double)i; //将int型变量强转成double型
sum-=1/i_2;
ft = false;
}else{
i_2 = (double)i;
sum+=1/i_2;;
ft =true;
}
}
printf("%.4f",sum); //输出
return 0;
}