求下面数列的所有大于等于精度e(不大于0.001)的数据项之和,显示输出计算的结果(四舍五入保留6位小数)。
1/2,3/4,5/8,7/16,9/32……
输入格式:
测试数据有多组,处理到文件尾。每组测试输入一个实数e。
输出格式:
对于每组测试,输出数列中所有大于等于e的数据项之和。结果四舍五入保留6位小数。
输入样例:
0.000001
输出样例:
2.999998
#include <stdio.h>
#include <math.h>
int main()
{
double e;
while (scanf("%lf", &e) != EOF)
{
int i;
int j = 1;//赋初值
double sum = 0;//ok
for (i = 1;; i += 2)
{
double ret=i / pow(2, j++);
//先判断是否小于再求和
if (ret < e)
break;
sum += ret;
}
printf("%.6lf\n", sum);
}
return 0;
}