【自学java笔记#第十二天#】Java程序设计环境

选用教材:《Java核心技术卷一》

第三章 Java程序设计环境

题目:找出1000以内的所有完数。完数是指所有因数的和刚好等于它本身的数,例如6的因数有1、2和3,且6=1+2+3,所以6是完数。

1、用数组解:

package homework;

public class CountingNumbers2 
{
    public static void main(String[] args)
    {
        int numbers[]=new int[1000];
        
        for(int i=0;i<numbers.length;i++)
        {
            numbers[i]=i;   //将1-999的正整数装入数组numbers
        }
        
        for(int m=1;m<1000;m++)
        {
            int count=0;
            for(int k=1;k<1000;k++)
            {
                if(numbers[m]%k==0 && numbers[m]!=k)   //依次判断数组元素是否是完数
                {
                    count+=k;  //将完数因子的和赋值给count
                }    
            }
            if(count==numbers[m])
            System.out.printf("%d是完数\n",numbers[m]);
        }
    }

}

2、单用循环解:

package homework;

public class CountingNumbers 
{
    public static void main(String[] args)
    {
        int i=1;
        int j=1;
        for(i=1;i<=1000;i++)
        {
            int sum=0;
            for(j=1;j<=i-1;j++)
            {
                if(i%j==0)
                {
                    sum+=j;
                }
            }
            if(sum==j)
                System.out.println(sum);
        }
    }

}

3、总结:自从学了数组之后,做啥题都想着用数组去解一解。实际上不需要那么复杂,现在对于几个循环嵌套在一起的情况,还是有点搞不清楚该在什么时候跳出循环,什么时候输出。以后写代码还是要坚持先构思,再开打。并且不知道是不是受以前学的C语言的影响,总觉得我现在还处于一种面向过程编程的阶段。

posted @ 2020-03-13 19:27  一只奶鹿  阅读(134)  评论(0)    收藏  举报