如何使用C程序计算从右到左的交替级数的和?

  • 本文关键字:程序 计算 从右到左 何使用 c
  • 更新时间 :
  • 英文 :


我正试图计算以下从右到左的总和(并将其与从左到右计算的总和进行比较):

1 -1/2 + 1/3 -1/4 + 1/5 -1/6 +…+ 1/9999 - 1/10000

float result = 0.0;
int i = 10000;
bool flag = true;
for (int i=10000; i<1; i--) {
if (flag == false) {
result = result + 1.0/i;
flag = true;
}
else {
result = result - 1.0/i;
flag = false;
}
}
printf("Addition from right to left accumulated in float: %fn", result);

然而,当我执行它时,我得到的结果是0.000000而不是~0.693。我已经使用下面的代码从左到右计算了另一个求和,并且我得到了我想要的结果。

bool flag = false;
float result = 0;
for (float i=1; i<=10000; i++) {
if(flag == true) {
result = result - 1/i;
flag = false;
}
else {
result = result + 1/i;
flag = true;
}
}
printf("Addition from left to right accumulated in float: %fn", result);

在从右到左你应该改变条件i≥1,因为你想循环执行从1000到1

for (int i=10000; i>=1; i--) {

输出为0,因为i不小于1,所以循环永远不会执行。

如上所述,首选双变量类型

最新更新