【自学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语言的影响,总觉得我现在还处于一种面向过程编程的阶段。
浙公网安备 33010602011771号