7-2 求给定精度的简单交错序列部分和(2022-高级语言程序设计练习——循环结构程序设计)

目录

题目链接:

题目:

输入格式:

输出格式:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

AC代码:

提交正确截图:


实现语言:C

编译器:gcc

题目链接:

题目详情 - 7-2 求给定精度的简单交错序列部分和 (pintia.cn)

题目:

2022-高级语言程序设计练习——循环结构程序设计

7-2 求给定精度的简单交错序列部分和

分数 15

作者 C课程组

单位 浙江大学

本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。

输入格式:

输入在一行中给出一个正实数eps。

输出格式:

在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。

输入样例1:

4E-2

输出样例1:

sum = 0.854457

输入样例2:

0.02

输出样例2:

sum = 0.826310

代码长度限制16 KB

时间限制400 ms

内存限制64 MB

AC代码:

#include <stdio.h>
#include <math.h>
int main()
{
    double eps;         // 输入在一行中给出一个正实数eps
    scanf("%lf", &eps); // 双精度浮点数输入%lf
    // 计数控制用for,计算值和输入值控制一般用while.
    // 本题属于计算值控制,是最后一项精度控制到一定范围结束循环的类型
    // – 计算值控制框架
    // tem = 1.0;
    // while (fabs (item) >= eps)
    //{
    //   item = flag * 1.0 / denominator;
    //   ……
    //   }
    double item = 1.0;               // 1,-1/4,1/7...记录每一项
    double sum = 0.0;                // 求和类初始化为0,求积类初始化为1
    int flag = 1;                    // 符号位控制
    int denominator = 1;             // 分母初始化为1每次加3
    item = flag * 1.0 / denominator; // 注意要乘1.0而不是1,乘1.0能让item自动类型转换为实数,乘1则为整型,整型除整型结果为整型,则除了第一项后面都是0
    sum = sum + item;
    while (fabs(item) > eps) // fabs()函数要用math.h库
    {
        // 当计算值精确度达不到精度要求,所有进行下一项更新
        flag = -flag;                    // 符号改为相反数
        denominator = denominator + 3;   // 分母每次加3
        item = flag * 1.0 / denominator; // 计算item;
        sum = sum + item;
    }
    printf("sum = %lf\n", sum); // 在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围.
    //%m.nlf表示以m位宽度输出小数点后为n位的双精度浮点数,默认为6位,故就写%lf即可
    return 0;
}

提交正确截图:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Curran-YU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值