Java面向对象程序设计课后习题参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

public class San_4 {// 编写一个应用程序求1!+2!+ (20)

/**

* @param args//本题考查对循环的运用和对算法的编写

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int a;

double b = 1, sum = 0;// 定义变量

for (a = 1; a <= 20; a++) {// for循环实现该功能

b = b * a;// 当a=1时,b=b*a=1,依此类推

sum = sum + b;// 当a=1时,sum=sum+b=1,依次类推

}

for (int w = 1; w <= 19; w++) {// for循环打印出阶乘之和的形式来System.out.print(w + "!" + "+");

}

System.out.println("20!" + "=" + sum);// 最终输出阶乘之和

double sum1 = 0, a1 = 1;

int i = 1;

while (i <= 20)// 用while循环实现该功能

{

sum1 = sum1 + a1;

i++;

a1 = a1 * i;

}

System.out.println("sum1=" + sum1);

}

}

输出结果:

1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+1

9!+20!=2.5613274941118203E18

sum1=2.5613274941118203E18

习题3_5

public class San_5 {// 求100以内的素数

/**

* @param args//本题考查对for循环、break语句、if语句的运用

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int i, j;

for (i = 2; i <= 100; i++) {// for循环从2开始,逐渐增1

for (j = 2; j <= i / 2; j++) {// for循环从2开始,逐步增1

if (i % j == 0) {// 如果i除以j的余数为0,则终止本次for循环

break;

}

}

if (j > i / 2) {// 如果j>i/2,输出i

System.out.print(" " + i);

}

}

}

}

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++) {

相关文档
最新文档