Aseeker 发表于 2019-11-17 15:57:21

C 求解

题目:S=(1-1/2)+(1/3-1/4)+……(1/(2n-1)-1/2n)

#include <stdio.h>
main()
{
    double s=0,b;
    int i,n;
    scanf("%d", &n);
    n=n*2;
    for(i=1;i<=n;i++)
{
   if(i%2!=0)
      b=i;
   else
      b=-i;
      s=s+1/b;
    }
    printf("%.6lf",s);
    system("pause");
}

为什么可以实现题目,是代码红字的原因吗,怎么理解

jackz007 发表于 2019-11-17 16:15:41

本帖最后由 jackz007 于 2019-11-17 16:16 编辑

   红字这一段代码加详细注释如下
      for(i = 1 ; i <= n ; i ++) {   // 从 i = 1 开始,总共循环 n 次,最后一次循环 i = n
                b = i                  ; // b 赋值为 i
                if(i % 2 == 0) b = - b ; // 如果 i 是偶数,那么 b 变负值
                s = s + 1 / b          ; // 求和
      }
页: [1]
查看完整版本: C 求解