public class Fenshu03
题目是:1、以下代码是计算1 + 1/2 + 1/4+...+1/50的值,并显示出来。
为什么我得的是1.02???????谁能告诉我,我错在哪了?在线等~
{
public static void main(String[] args)
{
double sum=1,under=1.0,term=0,sign=1; for(int i=2;i<=50;i++)
under=1.0*i;
term=sign/under;
sum=sum+term;
System.out.println("计算的结果是:"+sum);
}
}
题目是:1、以下代码是计算1 + 1/2 + 1/4+...+1/50的值,并显示出来。
为什么我得的是1.02???????谁能告诉我,我错在哪了?在线等~
{
public static void main(String[] args)
{
double sum=1,under=1.0,term=0,sign=1; for(int i=2;i<=50;i++)
under=1.0*i;
term=sign/under;
sum=sum+term;
System.out.println("计算的结果是:"+sum);
}
}
under=1.0*i;
term=sign/under;
sum=sum+term;
你的for循环只执行了 under=1.0*i;
需要用括号。
for(int i=2;i<=50;i++){
under=1.0*i;
term=sign/under;
sum=sum+term;
}
还有循环体里的i=1,因为你从1开始循环的话,sum才会+初始的第一次循环的结果,而你是从2开始循环了.
{
public static double calculateNum()
{
double sum=1,under=1.0,term=0,sign=1; for(int i=2;i<=50;i=i+2)
{
under=1.0*i;
term=sign/under;
sum=sum+term;
//sign=sign*(-1);
}
return sum;
}
public static void main(String[] args)
{
System.out.println("计算的结果是:"+calculateNum());
}
}
public static void main(String args[]){
final double i = 1.0;
double result = 0; for(int j = 1; j <=25 ; j++){
double x = (double)(j*2);
result += i/x ;
} System.out.println(String.valueOf(result));
}
}