public?static?void?main(String[]?args)?{
System.out.println(getMj(2000));
}
public?static?double?getMj(double?n){
if(n==1){
return?1.0;
}else{
double?r?=?(n-1)*(n-1)*(n+1)*(2*n+1)/(n*n*n*(2*n-1));
return?r*getMj(n-1);
}
}
}
遞歸算法前提是知道它的通項公式,2000表示把曲邊三角形等分2000個矩形,原理如下圖:
采用圖1算法:
an=(n+1)(2n+1) /6n^2 ?
簡單寫法如下:
public?class?Util?{public?static?void?main(String[]?args)?{
System.out.println(getMj(100000));
}
public?static?double?getMj(double?n){
return?(n+1)*(2*n+1)/(6*n*n);
}
}