public class Fenshu03
 题目是:1、以下代码是计算1 + 1/2 + 1/4+...+1/50的值,并显示出来。
为什么我得的是1.02???????谁能告诉我,我错在哪了?在线等~
{
     public static void main(String[] args)
    {
     double sum=1,under=1.0,term=0,sign=1;    for(int i=2;i<=50;i++)
     under=1.0*i;
     term=sign/under;
     sum=sum+term;
         System.out.println("计算的结果是:"+sum);
  }
}

解决方案 »

  1.   

    for(int i=2;i<=50;i++)
         under=1.0*i;
         term=sign/under;
         sum=sum+term;
    你的for循环只执行了  under=1.0*i;
    需要用括号。
        for(int i=2;i<=50;i++){
         under=1.0*i;
         term=sign/under;
         sum=sum+term;
    }
      

  2.   

    把原题目给我,是1+1/2+1/3+1/4......还是1+1/2+1/4 ????这是有逻辑的.你的under=1.0*i; 没用啊,就相当于under=i.
    还有循环体里的i=1,因为你从1开始循环的话,sum才会+初始的第一次循环的结果,而你是从2开始循环了.
      

  3.   

    回2K_Ice_Bug(速溶咖啡(不加糖)) 嘿嘿~不然怎么叫新手呢~
      

  4.   

    LinDW(林嘉安) 题目就是:计算1+1/2+1/4+...+1/50的值,并显示出来。
      

  5.   

    我改成了这个~哪位大虾再帮我看看~~谢谢了~~~~~~~~~~~~
    {
         public static double calculateNum()
        {
         double sum=1,under=1.0,term=0,sign=1;     for(int i=2;i<=50;i=i+2)
     
      {
      under=1.0*i;                       
      term=sign/under;
      sum=sum+term;                       
      //sign=sign*(-1);
      }
      return sum; 
      }
      public static void main(String[] args)
     
      {
      System.out.println("计算的结果是:"+calculateNum());
      }
      }
      

  6.   

    public class Test{
    public static void main(String args[]){

    final double i = 1.0;
    double result = 0; for(int j = 1; j <=25 ; j++){
    double x = (double)(j*2);
    result += i/x ;
    } System.out.println(String.valueOf(result));

    }
    }