请教Java高手一个“1+1!=2”的代码调试需求。

2024-12-12 12:27:47
推荐回答(1个)
回答1:

当然要影响,你只定义了一个全局变量i,只有重新定义局部变量i才会使全局变量在局部被屏蔽。
稍微改一下,你定义一个j,就行了。
int i = 1;
int j = 0;
double a = 1;
double c = 0;
while (i<=20){
j = i;
//下面这个循环出来结果都是a =1;你再改一下逻辑
while (j>0){
a =1;
a= a * j;
j--;
}
c = c + 1/a;
i ++;

}
System.out.println(c);

//稍微改一下,只保留4位小数。
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 1;
int sum = 0;
while (i<=20){
sum += 10005/i; //10005,保留4位小数,5是用来做四舍五入的。
i ++;
}
double result = sum/10000.0;//这个10000.0必须要有.0,否则就不会有小数
System.out.println(result);