题目描述
给定一个正整数,计算1-1/2+1/4-1/8+1/16……的前n项之和。
输入要求
输入一个正整数n。
输出要求
输出前n项之和,保留2位小数。
输入样例
5
输出样例
0.69
#include<stdio.h>
int main(){
int n,i;
double sum=0,m=1;//利用double定义浮点数(小数)
scanf("%d",&n);
for(i=1;i<=n;i++){
if(i%2==0){
sum+=-1.0/m;
}else{
sum+=1.0/m;
}
m*=2;
}
printf("%.2lf\n",sum);//.2lf是输出俩位小数点
return 0;
}
注:
1.int只是定义整数,如果涉及小数需要用double或者float来定义,而且double的值的最大长度要逼int长,这里的m到后面需要很大的数,故用double定义,而不去int
2.double对应的输入是"%f",输出是"%lf"