这个数列求和公式怎么算

img


求下面数列的所有大于等于精度e的数据项之和,显示输出计算的结果(四舍五入保留6位小数)。
1/2 3/4 5/8 7/16 9/32

img

#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;
}