long a, b, c;
  b = 1;
  c = 0;  for (a = 1; a <= 20; a++) {
   b = a * a;
   c = c + b;
 
   System.out.println( c);
  }为什么打印出来的不是阶乘??两两相乘的积相加,为什么这样写错了?

解决方案 »

  1.   

    额  建议由2个 for循环嵌套
      

  2.   

    你写错了,看你循环,当a=1的时候b=1,c=1.第二次循环a=2*2=4了,而且初始化的b=1完全没有意义,一句话你错的没边了。
    其实阶乘就是个很简单的递归思想而已。代码如下:
    int s=1;
    for(int i=5;i>0;i--){
       s=s*i;
    }
      

  3.   


    long a = 1;
            for(int b=1;b<=3;b++){
                a=a*b;
            }
            System.out.println(a);
      

  4.   


    for (a = 1; a <= 20; a++) {
      for(int i=1;i<a;i++){
              b=b*i
      }
       System.out.println( a*b);
      }