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

菜鸟问个问题 各位大侠指点下 应该很简单...
试用while循环语句计算1+1/2!+1/3!+……1/20!之和
public class Judge{
public static void main(String[] args){
System.out.println("sum=",sum);
}
private int sum(){
int i=1;
int sum=0;
int a=1;
while(i<=20){
sum+=sum+1/a;
i++;
a*=i;
}
return sum;
}
}
各种报错,身边没有人指导,菜鸟莫笑...

------解决方案--------------------
还真的错误多多。
附上正确代码!

public class Judge{
public static void main(String[] args){
System.out.println("sum="+sum());

private static double sum(){ //这里要把int改为,double,因为返回值要是浮点型的。又因为main函数要调用此方法,静态的方法不能调用非静态的方法,所以在double前面要加上static。
double i=1; //这三行都要把int类型换成double类型的,因为 整型除以整型得到的结果还是整型,不是浮点型。所以不会出现小数的。
double sum=0;
double a=1;
while(i<=20){
sum+=1/a; 这里,本来是sum+=sum+1/a;为什么要加两次sum呢?
i++;
a*=i;
}
return sum;

}

------解决方案--------------------
sum方法不是这么调用的,main方法里面不能直接调用非静态类。
输出的时候也错了,将“,”改为“+”。
public static void main(String[] args){
 Judge judge = new Judge();
 System.out.println("sum="+judge.sum());
}