下面的程序是求9999以内的完全数。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如28=1+2+4+7+14就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动main()主方法和其他已

admin2009-01-15  27

问题 下面的程序是求9999以内的完全数。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如28=1+2+4+7+14就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。
   注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
   源程序文件代码清单如下:
   public class QuanShu
   {
       public static void main(String args[])
       {
           for (int n=1;n<9999; n++)
           if(______)
               System.out.println (n);
       }
       public static int divsum(int n)
       {//该方法功能是求一个数的所有约数
           int s=0;
           for (int i=1; i<n; i++)
               if(______)
               ______
           return s;
       }
   }



选项

答案n==divsum(n) n%i==0 s+=i;

解析 本题考查for循环语句、求余运算符(%)和Java语言方法的使用。解答本题的关键是熟练使用for循环语句。在本题中, if(n==divsum(n))语句是用来调用divsum(n)方法(其中n为方法的实际参数)和判断某个自然数是否为完全数。n%i==0是用来判断数n是否能被数i整除,s+=i是用来累加某个自然数的所有约数。
转载请注明原文地址:https://kaotiyun.com/show/iTnp777K
0

随机试题
最新回复(0)