首页 > 编程语言 > 详细

Java2实用教程(第5版)第三章编程题答案

时间:2021-05-30 20:24:25      阅读:15      评论:0      收藏:0      [点我收藏+]

Java2实用教程(第5版)第三章编程题答案

(1)编写应用程序求1!+2!+···+10!

        int sum = 0;
        int fac = 1;

        for (int i = 1; i <= 10; i++) {
            //求阶乘
            for (int j = 1; j <= i; j++) {
                fac *= j;
            }
            sum += fac;
            fac = 1;
        }
        System.out.println("1!+2!+...+10!= " + sum);	//4037913

(2)编写一个应用程序求100以内的全部素数

        for(int i = 1; i < 101; i++){
            boolean flag = i!=1;
            for (int j = 2; j < i; j++){
                if (i%j == 0){
                    flag = false;
                    break;
                }
            }
            if (flag){
                System.out.println(i);
            }
        }

(3)分别用do-while和for循环计算1+1/2!+1/3!+1/4!+···的前20项和

     	//do-while循环 
		int i = 1;
        double sum = 0;
        do{
            int j = 1;
            int fac = 1;
            //求分母的阶乘
            do{
                fac *= j;
                j++;
            }while(j <= i);
            
            sum += 1.0 / fac;
            i++;
        }while(i <= 20);
        System.out.println(sum);	//1.7182818346494484
       	//for循环
		double sum = 0;
        for (int i = 1; i <= 20; i++) {
            int fac = 1;
            for (int j = 1; j <= i; j++) {
                fac *= j;
            }
            sum += 1.0/fac;
        }
        System.out.println(sum);	//1.7182818346494484

(4)一个数如果恰好等于它的因子之和,这个数就称为完数。编写应用程序求1000之内的所有完数

        for (int i = 1; i < 1000; i++) {
            int sum = 0;
            for (int j = 1; j < i; j++) {
                if (i%j == 0){
                    sum += j;
                }
            }
            if (sum == i){
                System.out.println(i);	//6 28 496
            }

(5)编写应用程序,使用for循环语句计算8+88+888+···前10项之和

        double num = 0;
        double sum = 0;
        for (int i = 0; i < 10; i++) {
            if (i == 0){
                num = 8;
            }else {
                //num = num + (8 * Math.pow(10,(double)i));
                //实现8 * Math.pow(10,(double)i)
                double temp = 8;
                for (int j = 1; j <= i; j++) {
                    temp *= 10;
                }
                num += temp;
            }
            sum += num;
        }
        System.out.println(sum);	//9.8765432E9

(6)编写应用程序,输出满足1+2+3+···+n<8888的最大正整数n

        int sum = 0;
        int n = 0;
        for ( ; sum < 8888; n++) {
            sum += n;
        }
        System.out.println(n);	//134

Java2实用教程(第5版)第三章编程题答案

原文:https://www.cnblogs.com/weifengfuzhi/p/14828410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!