咨询电话:010-82823766

求1-1/2+1/3-1/4+…+1/99-1/100
  • 2008-11-25 10:20:29
  • 发表时间:
  • 浏览次数:
  • 网络
  • 文章来源:
  • 佚名
  • 作者:

算法分析:

  算法可以表示如下:

  S1:1→sign

  S2:1→sum

  S3:2→deno

  S4:(-1)×sign→sign

  S5:sign×(1/deno)→term

  S6:sum+term→sum

  S7:deno+1→deno

  S8:若deno≤100返回S4;否则算法结束。

此算法对应的源程序如下:

main(){
    float sign=1,deno=2,sum=1,term;
    while(deno<=100){
     sign*=-1;
     term=sign*(1/deno);
     sum+=term;
     deno++;
    }
    printf("1-1/2+1/3-1/4+…+1/99-1/100=%f\n",sum);
}

  本例中用有含义的单词作变量名,以使算法更易于理解。sum表示累加和,deno是英文字母(denominator)缩写,sign代表数值的符号,term代表某一项。在步骤S1中先预设sign(代表级数中各项的符号,它的值为1或-1)。在步骤S2中使sum等于1,相当于已将级数中的第一项放到了sum中。在步骤S3中使分母的值为2。在步骤S4中使sign的值变为-1。在步骤S5中求出级数中第2项的值(-1/2)。在步骤S6中将刚才求出的第二项的值(-1/2)累加到sum中。至此,sum的值是(-1/2)。在步骤S7中使分母deno的值加1(变成3)。执行S8步骤,由于deno≤100,故返回S4步骤,sign的值改为1,在S5中求出term的值为1/3,在S6中将1/3累加到sum中。然后S7再使分母变为4。按此规律反复执行S4到S8步骤,直到分母大于100为止。一共执行了99次循环,向sum累加入了99个分数。sum最后的值就是级数的值。

 

top
推荐导读
推荐导读
bottom
top
热门文章
热门文章
bottom