java2实用教程课后习题答案(第三版编程题)[优质文档] 下载本文

内容发布更新时间 : 2024/9/29 9:30:15星期一 下面是文章的全部内容请认真阅读。

3. 编写应用程序,求1!+2!+…+10!。 答:

class Fact {

public static void main(String args[])

{ int fact,sum=0; for(int i=1;i<=10;i++)

{

fact=1;

for(int j=1;j<=i;j++)

fact*=j;

sum+=fact;

}

System.out.println(\到10的阶乘之和

是:\

}

}

4. 编写一个应用程序,求100以内的全部素数。 答:

class Primes { public static void main(String args[]) { int w=1;

for(int i=2;i<=100;i++) { for(int j=2;j

{

w=i%j;

if(w==0) break;

} if(w!=0)

System.out.println(i+\是素数\

}

}

}

5. 分别用do―while和for循环计算1+1/2!+1/3!+1/4!+…的前20项和。

答: ①for循环

class Sum

{

public static void main(String args[])

{

int fact;

double sum=0;

for(int i=1;i<=20;i++)

{

fact=1;

for(int j=1;j<=i;j++) fact*=j; sum+=1.0/fact;

}

System.out.println(sum);

}

}

②do―while循环 class Sum {

public static void main(String args[])

{

int i=1;

int fact; double sum=0; do

{

fact=1;

int j=0; while(++j<=i)

fact*=j;

sum+=1.0/fact;

}

while(++i<=20);

System.out.println(sum);

}

}

6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。

编写应用程序,求1000之内的所有完数。

答:

class Wanshu

{

public static void main(String args[])

{

int x,i,sum;

for(x=1;x<=1000;x++)

{

sum=0;

for(i=1;i

{

if(x%i==0) sum+=i;

}

if(x==sum)

System.out.println(x+\是完数\

}

}

}

7. 编写应用程序,分别使用while和for循环计算8+88+888+…

前10项之和。 答: ①for循环

class TheSum {

public static void main(String args[])

{

long sum=0,data=8;

for(int i=1;i<=10;i++)

{

sum=sum+data;

data=data*10+8;

}

System.out.println(sum);

}

}

②while循环 class TheSum {

public static void main(String args[])

{

long sum=0,data=8,i=0;

while(++i<=10)

{

sum=sum+data;

data=data*10+8;

}

System.out.println(sum);

}

}

8. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数n。 答:

class Maxn {

public static void main(String args[])

{

int k=1,sum=0; while((sum+=k)<8888)

k++;

k--;

System.out.println(\最大能取到:\

}

15.模仿例子4.27,编写一个类实现两个接口的程序。 答: ②

interface 表面积 { double allArea(double r);

}

interface 体积 { double volu(double r); }

class Sph implements 表面积,体积 {

double PI=3.14159;