这是我做的求完数的代码 我是在不知道哪错了
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