本人自学java刚十一天, 想将下面这个求1000以内完全数的appplication修改为在Applet中打印出所有完全数(1000以内)
import java.io.*;
public class PerfectNum
{
public static void main(String args[])
{
int count=1;
for(int i=1; i<1000; i++)
{
int y=0;
for(int j=1; j<i; j++)
if(i%j==0)
y+=j;
if(y==i)
{
System.out.print(i +String.valueOf('\t'));
count++;
if(count%3==0)
System.out.println();
}
}
}
}
我修改后的代码如下:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class PerfectNum2 extends Applet implements ActionListener
{
Button btn=new Button("确定");
Label out=new Label("求1000之内的完全数!");
public void init()
{
setLayout(new FlowLayout());
add(btn);
add(out);
btn.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
int count=1;
for(int i=1; i<1000; i++)
{
int y=0;
for(int j=1; j<i; j++)
if(i%j==0)
y+=j;
if(y==i)
{
out.setText(i +String.valueOf('\t'));
count++;
if(count%3==0)
out.setText("1000之内的完全数:"+count++);
}
}
}
}
结果只能打出496(1000以内一共有三个完全数 6, 28, 496)
若代码改为:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class PerfectNum2 extends Applet implements ActionListener
{
Button btn=new Button("确定");
Label out=new Label("求1000之内的完全数!");
public void init()
{
setLayout(new FlowLayout());
add(btn);
add(out);
btn.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
int count=1;
for(int i=1; i<1000; i++)
{
int y=0;
for(int j=1; j<i; j++)
if(i%j==0)
y+=j;
if(y==i)
{
out.setText("1000之内的完全数:"+count++);
}
}
}
}
则就只能打出6
本人不知是不是要用TextArea或者其他办法, 还请各位达人告诉我?
谢谢

最新回复
lwhsy59 (2007-5-06 18:54:41)