当前位置: 代码迷 >> Java相关 >> 新手问题请教高手(已解决)
  详细解决方案

新手问题请教高手(已解决)

热度:132   发布时间:2008-04-11 20:28:11.0
新手问题请教高手(已解决)
程序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]]
搜索更多相关的解决方案: sum  public  args  

----------------解决方案--------------------------------------------------------
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]]
----------------解决方案--------------------------------------------------------
恩..我只是习惯.不想给程序留下漏洞..呵呵
----------------解决方案--------------------------------------------------------
是啊
程序确实应该求精
我没能想到那点
----------------解决方案--------------------------------------------------------
  相关解决方案