我正在尝试在表格中打印以下系列:
m(i) = 1/2 + 2/3 + ... + i/(i + 1)
该表格如下所示:
i m(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
添加到自身。我的代码的语法有问题吗?
由于
答案 0 :(得分:1)
语法错误。您=+
的位置应为+=
。编译器不反对,因为它仍然是一个有效的语句。
答案 1 :(得分:0)
你在循环中声明了这么多,所以在每次迭代时它都会创建一个新的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