A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Hugoo 中级黑马   /  2014-7-1 08:50  /  610 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

小弟刚刚接触java有很多不明白的地方,下面是我编的程序,实现1!+2!+...+n!不知道哪里出问题了:
package Package8;
import java.util.Scanner;
public class MainClass {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Suanfa suanfa=new Suanfa();
Scanner reader=new Scanner(System.in);
System.out.println("请输入基数n:");
double n=reader.nextDouble();
suanfa.giveSum(n);
}

}

package Package8;

public class Suanfa {
void giveSum(double n){
double i,j,jiecheng=1,sum=0;
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
jiecheng=jiecheng*j;
}
sum=sum+jiecheng;
}
System.out.println("阶乘的和为:"+sum);
}
}
为什么执行后n=3的时候会是15呢?

1 个回复

倒序浏览
jiecheng=1把这句放在第一个for循环内,不然每次都不是从1开始!
for (i = 1; i <=n; i++) {
jiecheng = 1;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马