java吧 关注:1,288,948贴子:12,817,772
我在做题的过程中碰到了点小问题,题目是这样的:
 编写应用程序,求1!+2!+3!+4!+...+10!
以下是我编的程序,可我编的程序运行的结果是sum=10,这很显然是错误的,有谁能告诉我错在哪吗?

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);
  }
}
另外,我将程序改成下面这个样子时却完全显示不了结果,为什么?public class C

 public static void main(String args[])
 {  int sum=0, j=1  i=1;
   {while(i<=10)
     sum=sum+j;
     j=j*i;
   }
   System.out.println("sum="+sum);
 }
}
有谁能告诉我错误吗?


1楼2008-04-03 17:14回复
    public class C {
    public static void main(String args[]) {
    int sum = 0, j = 1, i = 1;
    while (i <= 10) {
    sum = sum + j;
    j = j * i;
    i++;//设置跳出循环条件

    }

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


    IP属地:山西2楼2008-04-03 17:50
    回复
      2025-11-25 00:11:56
      广告
      不感兴趣
      开通SVIP免广告
      能告诉我我错在哪吗?
      我需要的是错误,然后再自己编,这样印象会更深


      3楼2008-04-03 17:58
      回复
        • 61.187.93.*
        10的阶乘已经超出了int的精度了,你应该用大数字,比如说BigInteger


        4楼2008-04-03 18:08
        回复
          不好意思 没看见你上面的题目 你是求1!+。。。10!
          那么你要算的就是没一个数字的阶乘然后将它们相加,你用J来算出你的每个数的阶乘用sum来算总和是吧,那这个程序应该是
          public class C {
          public static void main(String args[]) {
          int sum = 0, j = 1, i = 1;
          while (i <= 10) {
          j = j * i;// 这里是1的阶乘(i=1到10)
          sum = sum + j;// 这里是1到i的和
          i++;// 设置跳出循环条件(是i从1增长到10)
          }
          System.out.println("sum="+sum);
          }
          }


          IP属地:山西5楼2008-04-03 18:08
          回复
            • 58.20.73.*
            完整的代码应该是这样的
            public class C {
             public static void main(String[] args) {

             int sum = 0, j = 1, i = 1;
             for (i = 1; i <= 10; i++) {
             j = j * i;
             sum = sum + j;
             }
             System.out.println("sum=" + sum+"QQ272604051");

             }
            }


            6楼2008-04-03 18:10
            回复
              2楼的,你的错了啊,我运行了一下,你的结果是:409114
              而正确结果是:4037913


              7楼2008-04-03 18:10
              回复
                恩 是的 我没看见你题目的要求 只改了下你跳出循环的条件


                IP属地:山西8楼2008-04-03 18:13
                回复
                  2025-11-25 00:05:56
                  广告
                  不感兴趣
                  开通SVIP免广告
                  5楼的,你的依然是错误的啊,你的程序运行出的结果仍然是409114
                  而正确结果是:4037913


                  9楼2008-04-03 18:21
                  回复
                    还是错的


                    10楼2008-04-03 18:22
                    回复
                      我恳请你运行一下在看看是否对错好吗


                      IP属地:山西11楼2008-04-03 18:29
                      回复
                        软件培训咨询师-为你免费解答 
                        北大青鸟阜成门中心 
                        咨询QQ: 813042092。 
                        或拨打我们的电话:010-86637010


                        12楼2008-04-03 18:32
                        回复
                          我运行了


                          13楼2008-04-03 18:49
                          回复
                            对了对了 你的是对的
                            我运行时范了个错误,不好意思
                            谢谢你了


                            14楼2008-04-03 18:53
                            回复
                              2025-11-24 23:59:56
                              广告
                              不感兴趣
                              开通SVIP免广告
                              • 61.177.188.*
                              class Testn{
                              static int f(int j){
                               int i,sum=1;
                               for(i=1;i<=j;i++)
                               sum*=i;
                               return sum;
                              }
                               public static void main(String args[]){
                               int n, s=0;
                               for(n=1;n<=10;n++)
                               s+=f(n);
                              System.out.print("sum="+s);
                              }

                              sum=4037913
                              你的错误是for循环只执行了第一句,j的值一直为1,加了十次


                              15楼2008-04-03 19:11
                              回复