题目是这样的:
编程输出1/1+1/3+1/5+.......+1/99
当时在考场是这么写的:
public class Add {
public static void main(String[]args){
int sum=0;
for(int i=1;i<100;i++){
sum=sum+1/i;
++i;
}
System.out.println(sum);
}
}
自以为程序太简单了,还放到eclipse里运行了一下,输出结果是1,这个结果不对,当时感觉自己写的程序也没错,就以为是eclipse除了问题,现在想想真是可笑
回到宿舍想了想,程序是哪里不对,重新检查了一遍,发现sum应该是double类型的,而且sum+1/i也应该是double类型的,所以应该是sum=(double)(sum+1/i)发现运行出来还是1.0,直接在for循环里把i的类型改成double就好了,所以正确的程序因该是:
public class Add {
public static void main(String[]args){
double sum=0;
for(double i=1;i<100;i++){
sum=sum+1/i;
++i;
}
System.out.println(sum);
}
}
由此想到自身存在的诸多问题,太相信自己了,写代码出错很正常,就怕自己太自负,太相信自己,不去代码里找错误,而怀疑编译器出了问题,本来很简单的错误就也找不出来了,自己还是对代码不熟悉,发现问题并解决问题的能力太差,对别人的依赖性太强。把简单事情做好未尝不是伟大的事,再雄伟的建筑也是由一块块不起眼的砖垒起来的,再伟大的事情也是由一件件不起眼的小事做成的,每一个项目也是由一条条代码组成的,哪一条代码即使出了丁点的错误可能整个项目都不能运行,自己还是太忽视细节性的东西,细节决定成败,以后要注意细节的东西,小事做好了才有资格去做大事