[英]Java error in mathematical computation
我正在嘗試在表格中打印以下系列:
m(i) = 1/2 + 2/3 + ... + i/(i + 1)
該表如下所示:
im(i) 1 0.5000 2 1.1667 ... 19 16.4023 20 17.3546
但是我現在得到的表是:
1 0.5 2 0.6666666666666666 3 0.75 4 0.8 5 0.8333333333333334 6 0.8571428571428571 7 0.875 8 0.8888888888888888 9 0.9 10 0.9090909090909091 11 0.9166666666666666 12 0.9230769230769231 13 0.9285714285714286 14 0.9333333333333333 15 0.9375 16 0.9411764705882353 17 0.9444444444444444 18 0.9473684210526315 19 0.95 20 0.9523809523809523
我到目前為止的代碼如下:
public class Help {
public static double printSeries(int ch1, int ch2){
for (int i=ch1; i <= ch2; i++){
double iPlusOne = i+1;
double mi =+ i/iPlusOne;
System.out.println(i + " " + mi);
}// end of for loop
return 0.00;
}// end of printSeries method
public static void main(String args[]){
printSeries(1, 20);
}// end of main method
}// end of class
由於某種原因, mi
並未將mi
添加到自身中。 我的代碼語法有問題嗎?
謝謝
語法錯誤。 你有=+
應該是+=
。 編譯器不反對,因為它仍然是有效的語句。
杜德(Dude)是您在循環本身中聲明的,因此在每次迭代中,它都會創建一個新的mi
變量。 這樣嘗試
public class Help {
public static double printSeries(int ch1, int ch2){
double mi=0;
double iPlusOne=0;
for (int i=ch1; i <= ch2; i++){
iPlusOne = i+1;
mi += i/iPlusOne;
System.out.println(i + " " + mi);
}// end of for loop
return 0.00;
}// end of printSeries method
public static void main(String args[]){
printSeries(1, 20);
}// end of main method
}// end of class
輸出:
1 0.5
2 1.1666666666666665
3 1.9166666666666665
4 2.716666666666667
5 3.5500000000000003
6 4.4071428571428575
7 5.2821428571428575
8 6.171031746031746
9 7.071031746031746
10 7.980122655122655
11 8.896789321789322
12 9.819866244866246
13 10.748437673437675
14 11.681771006771008
15 12.619271006771008
16 13.560447477359244
17 14.504891921803688
18 15.45226034285632
19 16.40226034285632
20 17.354641295237272
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.