新手问题请教高手(已解决)
程序1:/*求1+2+.....+100 */
public class SuanShi
{
public static void main(String [] args)
{
double i,sum=1;
for(i=2;i<=100;i++)
{
sum+=i;
}
System.out.println("sum="+sum);
}
}
程序2:
/* 求1+1/2+1/3+1/4+1/5+1/6+.....1/100 */
public class SuanShi1
{
public static void main(String [] args)
{
double i,sum=1;
for(i=2;i<=100;i++)
{
i=1/i;
sum+=i;
}
System.out.println("sum="+sum);
}
}
为什么上面一个程序执行很快就出结果
而下面一个程序执行好久还不能得出结果呢?
[[it] 本帖最后由 hwpayg 于 2008-4-11 21:09 编辑 [/it]]
----------------解决方案--------------------------------------------------------
class SuanShi1
{
public static void main(String [] args)
{
double i,j,sum=1;
for(i=2;i<=100;i++)
{
j=1.0/i;
sum+=j;
}
System.out.println("sum="+sum);
}
}
----------------解决方案--------------------------------------------------------
谢谢ls的
还有个问题
我写成j=1/i和j=1.0/i有什么不同
----------------解决方案--------------------------------------------------------
可以自己想想啊...1/3和1.0/3.0 有什么不同
----------------解决方案--------------------------------------------------------
1.0/3.0和1/3的区别我知道
刚才没看清楚你的程序
乱说了句
现在搞明白了
我那第二个程序的循环是有问题的
另外:其实那个i=1/j是能通过的,系统能够替你自动转换。
[[it] 本帖最后由 hwpayg 于 2008-4-11 21:11 编辑 [/it]]
----------------解决方案--------------------------------------------------------
恩..我只是习惯.不想给程序留下漏洞..呵呵
----------------解决方案--------------------------------------------------------
是啊
程序确实应该求精
我没能想到那点
----------------解决方案--------------------------------------------------------