Java面向对象程序设计课后习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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++) {