日期:2014-05-20  浏览次数:20855 次

【求助】关于阶乘的问题
long a, b, c;
  b = 1;
  c = 0;

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

为什么打印出来的不是阶乘??两两相乘的积相加,为什么这样写错了?

------解决方案--------------------
你写错了,看你循环,当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;
}