(1)用do-while计算1+1/2!+1/3!+1/4!+···前20项的和。代码如下:
public class exercise2 { public static void main(String args[]) { int i=1; int j; int n; float sum=0; do { j = 1; n = 1; do { n = n*j; j++; }while(j<=i); sum = sum+(1f/n); i++; }while(i<=20); System.out.println("sum= "+sum); }
(2)一个数如果恰好等于它的因子之和,这个数就称为完数。编写应用程序求1000之内的所有完数。代码如下:
public class exercise2 { public static void main(String args[]) { int i; int j; int sum; for(i=1;i<=1000;i++) { for(j=1,sum=0;j<=i/2;j++) { if(i%j==0) sum+=j; } if(sum==i) { System.out.println("完数: "+i+" 因子为:"); for(j=1;j<i;j++) { if(i%j==0) { System.out.print(" "+j+" "); } } System.out.println("\n"); } } } }