用JAVA编写程序,计算下面数列的和: 1/3+3/5+5/7+…+95/97+97/99
大家看看我的程序哪里出错了,为什么得出sum=0?publicclassplus{/***@paramargs*/publicstaticvoidmain(String[...
大家看看我的程序哪里出错了,为什么得出sum=0?
public class plus {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0,a=1,b;
for(a=1;a<=97;a++)
{
b=a+2;
sum=sum+a/b;
a++;
}
System.out.print(sum);
}
} 展开
public class plus {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum=0,a=1,b;
for(a=1;a<=97;a++)
{
b=a+2;
sum=sum+a/b;
a++;
}
System.out.print(sum);
}
} 展开
7个回答
展开全部
因为你的a和b使用的是int类型, 所以a / b 的除号得到的是整除,整除就是 5 / 2 = 2, 1 / 2 = 0, 19 / 3 = 6等等。你应该把sum,a和b的类型都改成double类型就可以了。
public class plus {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
double sum=0,a=1,b; //改成double
for(a=1;a<=97;a++)
{
b=a+2;
sum=sum+a/b;
a++;
}
System.out.print(sum);
}
}
展开全部
因为你定义的a和b都是int类型的,a小于b,a/b的结果总是0,所以你得到的sum结果是0,
你可以在计算的过程中将其中的一个数转换成double类型再计算,还有你的sum也要定义成double类型的,还有你的循环条件中要写成(a=1; a<97; a+=2)。希望对你有帮助~
你可以在计算的过程中将其中的一个数转换成double类型再计算,还有你的sum也要定义成double类型的,还有你的循环条件中要写成(a=1; a<97; a+=2)。希望对你有帮助~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a = 1/3;a的值是0,需要用浮点或者双精度来计算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int/int结果是int类型,a比b小,所以a/b永远==0,因此sum==0;
要想获得小数形式的,只需要把b定义为double型就可以了
要想获得小数形式的,只需要把b定义为double型就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-09-12
展开全部
sum改为浮点型
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询