由耿祥义和张跃平编著的Java面向对象程序设计课本习题部分参考答案
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
习题3_6
public class San_6 {// 分别用while和for循环计算1+1/2!+1/3!+1/4!...的前20项和 /** * @param args//本题考查同学们对while循环、for循环以及对输出字符串格式的运用 */ public static void main(String[] args) { // TODO Auto-generated method stub int i = 1, k; double j = 1, m = 1, sum1 = 0, sum2 = 0; while (i <= 20) {// 用while循环实现 sum1 = sum1 + j; i++; j = j * (1.0 / i); } System.out.print("1+"); for (int r = 2; r <= 19; r++) { System.out.print("1/" + r + "!" + "+"); } System.out.print("1/20!" + "=" + sum1); System.out.println(); System.out.print("1+"); for (int r = 2; r <= 19; r++) { System.out.print("1/" + r + "!" + "+"); } for (k = 1; k <= 20; k++) {// 用for循环实现 m *= (1.0 / k); sum2 += m; } System.out.println("1/20!" + "=" + sum2); } }
计算结果:
1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.7182818284590455 1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.7182818284590455
习题3_7
public class San_7 {// 一个数如果恰好等于它的因子之和,这个数就成为”完数“。 // 编写一个应用程序求1000以内的所有完数。 /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i, j,sum; for (i = 1; i <= 1000; i++) { for (j = 1, sum= 0; j < i; j++) {