java吧 关注:1,289,009贴子:12,817,900

回复:请教问题

只看楼主收藏回复

看了一下,
首先,您的是思路正确,不过有些地方逻辑上可能刚刚接触的缘故,没有成正常思维转换过来,慢慢便会习惯的。

public class C

 public static void main(String args[])
 { int sum=0, j=1 i=1;
 {for(i=1;i<=10 i++)
 sum=sum+j;
 j=j*i;
 }
 System.out.println("sum="+sum);
 }


6楼朋友,看下题目,是求1!+2!+3!+4!+...+10! 
你被楼主程序给误倒了;
楼主问题便是出于 j=j*i;上,
楼主您的思想,便是1*1=1;1*2=2;1*3=3....然后输出到表达式(sum=sum+j;)运行吧.但此处不用忘记,j=j*i是叠加的,那么自然结果便是1*2=2;2*3=6;6*4=24....
这处上有些逻辑错误.
因此,sum=sum+j便直接变成sum=sum+i,省略那个表达式即可

public class C

 public static void main(String args[])
 { int sum=0, j=1 ,i=1;
 {for(i=1;i<=10; i++)
 sum=sum+i;

 }
 System.out.println("sum="+sum);
 }
}


16楼2008-04-03 20:37
回复
    第二个是用while循环表示,如果第一条语句是逻辑错误而言,
    那么第二条错误便是原则性的错误,语法错误.

    首先,while的语法是 while(表达式){循环体};而你犯的错误便是:
    {while(i<=10)
     sum=sum+j;
     j=j*i;
     } 
    {while(表达式)循环体},这样的写法自然不对,这是其一.

    既然是循环,那么自然要有终止条件(当然死循环不需要),你的终止条件在
    上个帖子的的例子已经说过的逻辑错误,应去除.然后增加i++(i=i+1);
    这是其二,则是如下:
     while(i<=10){
     sum=sum+i;
     i=i+1;
     }


    完整程序:public class C

     public static void main(String args[])
     { int sum=0,i=1;
     while(i<=10){
     sum=sum+i;
     i=i+1;
     }
     System.out.println("sum="+sum);
     }
    }


    17楼2008-04-03 20:51
    回复