#include <stdio.h>
#include <math.h>
int main()
{
double e, sum;
scanf("%lf", &e) ;
int k = 0;
sum = 0;
while (1) {
double tmp = 1.0 / pow(2, k + 1) * (2 * k + 1);
if (tmp < e) {
break;
}
sum += tmp;
k++;
}
printf("%.6lf\n", sum);
return 0;
}
供参考:
#include <stdio.h>
int main()
{
int i = 1, k = 2;
double eps, sum = 0;
scanf("%lf", &eps);
while (((i * 2 - 1) * 1.0 / k) >= eps) {
sum += (i * 2 - 1) * 1.0 / k;
i++;
k *= 2;
}
printf("%.6f", sum);
return 0;
}