其实只有在学校才会使用的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();
}
}
}