java+卡有型号吗,第一次写java代码,就卡主了,真是惨,有木有大腿来帮忙调试一下...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
這是一個用高斯公式,計算圓周率pi的代碼,可惜我不會java,只能憑空想想百度自己寫寫,結(jié)果就是運行不了啊,求大腿
/*高斯公式 參考網(wǎng)址 http://www.cqvip.com/read/read.aspx?id=33099664
pi/4=12*arctan(1/18)+8*arctan(1/57)-5*arctan(1/239)
arctanx=x-x^3/3+x^5/5-x^7/7+...
這里的x相當1/18,1/57,1/239.
比如當精度1,只計算x-x^3/3時
x=1/18 1/18-(1/18)^3/3=0.055498399634202
x=1/56 0.01754205972508
x=1/239 0.0041840760018183
pi=(0.055498399634202*12+0.01754205972508*8-0.0041840760018183*5)*4=3.1415875736079
*/
package arct;
import java.math.*;
public class arct{
//高斯計算arctanx
public static BigDecimal arct(int a,int b){//方法arct計算arctanx,a為18,57,239等整數(shù).b為精度
BigDecimal f=new BigDecimal(Integer.toString(1));//定義變量f,控制符號變量f
BigDecimal dd=new BigDecimal(Integer.toString(1));//定義變量dd
BigDecimal d = new BigDecimal( Integer.toString(a)); //改變a的值類型
BigDecimal b1= new BigDecimal(Integer.toString(1)); //定義一個初始值為1的變量,用來當分母初始值
BigDecimal d2=b1.multiply(d);//定義d2的值為x每次多的次方x^2
BigDecimal r=d;//定義r,最后作為返回結(jié)果
int i=1;
for (i = 1; i <= b; i++) {//循環(huán)控制精度
b1=b1.add(new BigDecimal(Integer.toString(2)));//分母值每次+2
d=d.multiply(d2);//分子值每次乘以d2(x^2)
dd=d.multiply(b1);//2者相乘
if( i%2 == 1){//if語句改變運算符號
f=new BigDecimal(Integer.toString(-1));
}
else if ( i%2 == 0){
f=new BigDecimal(Integer.toString(1));
}
dd=f.divide(dd);//根據(jù)符號變量f,f控制符號的同時作分子
r=r.add(dd);
}
return r;}
public static void main(String[] args) {
//高斯pi/4=12*arctan(1/18)+8*arctan(1/57)-5*arctan(1/239)
Long startTime = System.currentTimeMillis();
BigDecimal d1=arct.arct( 18,100);//調(diào)用arctg方法計算arctanx
BigDecimal d2=arct.arct(57,100);
BigDecimal d3=arct.arct(239,100);
d1=d1.multiply(new BigDecimal(Integer.toString(48)));//高斯公式arctan前的系數(shù)
d2=d2.multiply(new BigDecimal(Integer.toString(32)));
d3=d3.multiply(new BigDecimal(Integer.toString(20)));
BigDecimal p=new BigDecimal(Integer.toString(0));//定義pi
p=d1.add(d2);
p=p.min(d3);
System.out.println(p); //輸出pi
Long endTime = System.currentTimeMillis();
System.out.println(endTime - startTime);//輸出程序運行時間
}}
總結(jié)
以上是生活随笔為你收集整理的java+卡有型号吗,第一次写java代码,就卡主了,真是惨,有木有大腿来帮忙调试一下...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 建设银行信用卡申请技巧
- 下一篇: 恒生etf是宽基指数吗