本文主要是介绍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,首项为1int 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;
这篇关于2 程序的灵魂—算法-2.2 简单算法举例-【例 2.4】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!