[英]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.