天天看點

java e=1+1/1!+1/2!+1/3!+ ……

其實隻有在學校才會使用的java程式設計,我都已經很久沒有編寫過這種代碼了。别人找我做我也隻能知道思路,具體怎麼編寫其實一點都不記得了。平時都是編寫B/S模式的,和這個還真沒什麼關系,看了看别人的代碼是怎麼寫的才想起來,真是腦子不好使啊!

題目:用e=1+1/1!+1/2!+1/3!+ ……的公式求e的近似值,直到最後一項的絕對值小于10-6為止,并将輸出結果儲存在檔案java_11.txt中。

這裡主要就是兩個方面,一是1/fun(i)得到的值一直都是0,雖然給他定義的是double,但是還是沒有用,嘗試用BigDemical還是不管用,直到(double)強轉的出現解決了。二是檔案怎麼存儲到txt文檔中去,這也是從網上扒下來改的。希望自己留着以後可以借鑒吧!

package test;

import java.io.FileWriter;

import java.io.IOException;

public class test {

static int  fun(int i){

int m = 1 ;

for(int n =1 ; n <= i ; n++){

m*=n;

}

return m ;

public static void main(String[] args) {

int i = 1 ;

double e = 1 ;

while(Math.abs(fun(i))<=1000000){

e+= (double)1/fun(i);

i++;

FileWriter fileWriter; 

try {

fileWriter = new FileWriter("E:\\java_11.txt");

fileWriter.write(String.valueOf("e的近似值為:"+e));

fileWriter.flush();

fileWriter.close();

} catch (IOException e1) {

                    // TODO Auto-generated catch block

e1.printStackTrace();

繼續閱讀