簡體   English   中英

Java階乘打印錯誤值

[英]Java factorial printing wrong value

我在做運動時需要幫助。 我目前正在學習Java。 我正在進行階乘練習,由此我的應用程序提示用戶輸入數字,然后計算該數字的階乘並將其返回以顯示出來。

這是我的GUI類:

public String factorial;
public String fieldnumber;

public String calculateFactorial() {
    fieldnumber = this.numberField.getText();
    Number number = new Number(Integer.parseInt(fieldnumber));
    System.out.print(number.toString());

    return number.toString();
}

private void calculateBtnActionPerformed(java.awt.event.ActionEvent evt) {                                                  
     System.out.println( this.calculateFactorial());
}

這是我的Number類:

public class Number {    
    private int number;
    int i,fact=1;

    public Number(int number){
        this.number = number;
    }

    public Integer getNumber(){
        return this.number;
    }

    public void setNumber(int number){
        this.number = number;
    }

    private Integer computeFactorial(){
        for(i=1; i<=number ;i++){    
            fact=fact*i;              
        }
      return this.fact;
    }

    public String toString() { 
        return Integer.toString(this.computeFactorial());
    }
}

當我打印計算出的階乘時,真實結果是打印的垃圾值的一部分。 6的階乘是720,但是我看到720518400的前三個數字是正確的,垃圾不知道它來自哪里。

請幫忙

在for循環之前,必須初始化fact = 1; 因為您兩次調用了該方法。

private Integer computeFactorial(){
      fact = 1;
      for(i=1; i<=number ;i++){    
        fact=fact*i;  
     }
      return this.fact;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM