作者 usx程序设计类课程组
单位 绍兴文理学院
求下面数列的所有大于等于精度e(不大于0.001)的数据项之和,显示输出计算的结果(四舍五入保留6位小数)。
1/2,3/4,5/8,7/16,9/32……
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个实数e。
输出格式:
对于每组测试,输出数列中所有大于等于e的数据项之和。结果四舍五入保留6位小数。
输入样例:
0.000001
输出样例:
2.999998
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h>
#include <math.h>
int main() {
double e;
while (scanf("%lf", &e) != EOF) {
double sum = 0;
int i = 1;
double temp = 1.0 / 2.0;
while (temp > e) {
sum += temp;
temp = (2 * i + 1) / pow(2, i + 1);
i++;
}
printf("%.6lf\n", sum);
}
return 0;
}