2 程序的灵魂—算法-2.2 简单算法举例-【例 2.4】

【例 2.4】求 100
1 - 1/2 - 1/3 + … + 1/100
算法可表示如下:
S1: sigh=1
S2: sum=1
S3: deno=2
S4: sigh=(-1)×sigh
S5: term= sigh×(1/deno )
S6: term=sum+term
S7: deno= deno +1
S8:若 deno≤100,返回 S4;否则,结束。

    double sum = 1.0;  // S1: 初始化总和为1.0,首项为1
    int sign = -1;     // S2: 初始化符号变量,首项后开始为负
    int deno = 2;      // S3: 初始化分母为2,从第二项1/2开始

    printf("计算过程:\n");
    // S4-S8: 循环计算直到分母达到101(包括1/100这一项)
    while (deno <= 100) {
        double term = (double)sign / deno; // S5: 计算当前项,并考虑符号
        // 更清晰地展示计算过程,但需注意浮点数精度限制
        printf("Step %2d: Term = %+.10lf (as fraction ~ %+.10lf/%d)\n", deno-1, term, sign, deno);
        sum += term;                     // S6: 累加到总和
        sign *= -1;                      // S7: 反转符号,准备计算下一项
        deno++;                         // S8: 分母递增
    }

    // 输出结果
    printf("\n计算结果为: %.10lf\n", sum);

    return 0;

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 05:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 05:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 05:52:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 05:52:02       20 阅读

热门阅读

  1. 如何在 C# 中轻松从 HTML 中提取纯文本

    2024-06-09 05:52:02       9 阅读
  2. scrapy入门例子:获取百度热搜

    2024-06-09 05:52:02       9 阅读
  3. mysql解决深度分页的问题

    2024-06-09 05:52:02       11 阅读
  4. 自动驾驶人工智能

    2024-06-09 05:52:02       9 阅读
  5. 平滑值(pinghua)

    2024-06-09 05:52:02       8 阅读
  6. Ubuntu bash按Table不联想

    2024-06-09 05:52:02       10 阅读
  7. 素数幂变换问题

    2024-06-09 05:52:02       9 阅读
  8. html前端怎么赚钱:探索多元盈利途径

    2024-06-09 05:52:02       8 阅读