当前位置:编程学习 > JAVA >>

这是我做的求完数的代码 我是在不知道哪错了

class  perfectDigit
{
public static void main(String[] args) 
{
perfect zlt = new perfect();
zlt.num=100;
zlt.getFac();

}

class perfect
{   int num;
  void getFac()
{
    int factor=0;
for(int i=2;i<=num;i++)
    {
for(int j=1;j<i;j++)
{
if(i%j==0)
factor=factor+j;
}
if(factor==i)
{
System.out.println("1000以内的完数有:"+factor);
}
}
 }
}

--------------------编程问答-------------------- 急啊...... --------------------编程问答-------------------- public class PerfectDigit {

public static void main(String[] args) {
perfect zlt = new perfect();
zlt.num = 1000;
zlt.getFac();
}
}

class perfect {
int num;

void getFac() {
int factor = 0;
for (int i = 2; i <= num; i++) {
factor = 0;
for (int j = 1; j < i; j++) {
if (i % j == 0)
factor = factor + j;
}
if (factor == i) {
System.out.println("1000以内的完数有:" + factor);
}
}
}

}
在第二层循环加一句factor = 0;
因为你之前那样写,从判断2开始factor一直累加!
其次你上面的zlt.num = 100,要改成1000!
这样就对了!
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,