大家看看下面的程序, 求1000以内的完数.
运行结果是空,sum变量在for循环外初始化为0.class WanShu
{ public static void main(String args[])
{
int sum=0,i,j; for(i=1;i<=1000;i++)
{
for(j=1;j<i;j++)
{ if(i%j==0)
sum=sum+j;
} if(sum==i) System.out.println("完数:"+i); }
}}而在for语句中初始化,即可求出完数.如下:
class WanShu
{ public static void main(String args[])
{
int sum=0,i,j; for(i=1;i<=1000;i++)
{
for(j=1,sum=0;j<i;j++)
{ if(i%j==0)
sum=sum+j;
} if(sum==i) System.out.println("完数:"+i); }
}
}请问,这是什么原因. 谢谢
运行结果是空,sum变量在for循环外初始化为0.class WanShu
{ public static void main(String args[])
{
int sum=0,i,j; for(i=1;i<=1000;i++)
{
for(j=1;j<i;j++)
{ if(i%j==0)
sum=sum+j;
} if(sum==i) System.out.println("完数:"+i); }
}}而在for语句中初始化,即可求出完数.如下:
class WanShu
{ public static void main(String args[])
{
int sum=0,i,j; for(i=1;i<=1000;i++)
{
for(j=1,sum=0;j<i;j++)
{ if(i%j==0)
sum=sum+j;
} if(sum==i) System.out.println("完数:"+i); }
}
}请问,这是什么原因. 谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货