码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2021-06-02 17:30:32      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:OLE   pre   应用程序   最大   lang   循环语句   一个   for   for循环   

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版)第三章编程题答案

标签:OLE   pre   应用程序   最大   lang   循环语句   一个   for   for循环   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!