试用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;
}
}
各种报错,身边没有人指导,菜鸟莫笑...

解决方案 »

  1.   

    还真的错误多多。
    附上正确代码!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;

    }
      

  2.   

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

  3.   

    刚才试了下只要sum和a是double就可以了,谢谢你啊,菜鸟不懂得地方很多,见笑了
      

  4.   

    原来类可以这样引用自己的方法啊,我还以为只有引用别的类的时候才能new新对象来调用方法呢,受教了