PTA 7-147 数列求和

该文章描述了一个编程问题,要求计算一个特定数列(1/2,3/4,5/8...)中所有大于等于给定精度e(不大于0.001)的数据项之和,并将结果四舍五入至6位。使用C语言实现的代码片段展示了如何遍历并求和这些项。
摘要由CSDN通过智能技术生成

求下面数列的所有大于等于精度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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值