我不能理解爲什麼這段代碼不工作。我正在創建一個函數,以用戶指定的頻率在給定x間隔內的所有點上評估多項式。我的基礎多項式代碼無法解決問題。我的問題是用我從霍納的方法獲得的值填充我的數組。初始化一個雙精度數組java
public double[] evalAt(double s, double f, int n) {
double[] resultArray = new double[n];
double h =((f - s)/(n));
if(s==f) {
double tempResult = 0;
for (int i = this.degree; i >= 0; i--) {
tempResult = tempResult * s + this.terms[i].getCoefficient();
}
resultArray[0] = tempResult;
} else {
int counter = 0;
for(double i = s; i <= f; i=i+h) {
double tempResult = 0;
for (int j = this.degree; j >= 0; j--) {
tempResult = tempResult * i + this.terms[j].getCoefficient();
}
System.out.println("Counter: " + counter + " Result @ Counter: " + tempResult);
resultArray[counter++] = tempResult;
}
System.out.println(resultArray[0]);
System.out.println(resultArray[1]);
System.out.println(resultArray[2]);
System.out.println(resultArray[3]);
}
return resultArray;
}
我有一個print
聲明,證明我什麼計數器的值和臨時結果的。然後我使用resultArray['index'] = 'value';
語法。當我運行這個時,我發現計數器和值與我想要的完全一樣,但是當我檢查底部的四個print
聲明時,沒有任何反應。我的輸入爲0,10,10
:
輸出:
Counter: 0 Result @ Counter: 0.0
Counter: 1 Result @ Counter: 1.0
Counter: 2 Result @ Counter: 4.0
Counter: 3 Result @ Counter: 9.0
Counter: 4 Result @ Counter: 16.0
Counter: 5 Result @ Counter: 25.0
Counter: 6 Result @ Counter: 36.0
Counter: 7 Result @ Counter: 49.0
Counter: 8 Result @ Counter: 64.0
Counter: 9 Result @ Counter: 81.0
Counter: 10 Result @ Counter: 100.0
你爲什麼不修理你的縮進,再看看?我的猜測是括號裏的內容沒有按照你的想法做。 – user949300
再次嘗試編譯 – Max
這兩個解決方案都無法正常工作,儘管我很欣賞即時答覆。 – user1068366