JAVA第三章习题代码补充

3.19

分析:这里用到了数学里的阶层,1先提出来,后边的表达式就可以用item=item*i;e+=1/item来实现,最后输出e.

import java.util.Scanner
class Demo03_19{
    public class void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int imax=scanner.nextInt();
        double item=1.0;
        double e=1;
        
        for(i=1;i<=imax;i++){
            item=item*i;
            e+=1/item;
            }

        System.out.println(e);
       }  
 }
     

 输入2:i=1<2然后item=1*1.0=1.0然后e=1+1/1.0,然后i=2<=2然后e=1+1/1.0+1/2.0,2++=3>2所以退出循环,然后输出e.

3.21

分析:除数的个数等于正整数的一半,用内嵌for循环来实现。

class Demo03_21{
public static void main(String[] args){
    int sum=0;
    for(int n=2;n<=1000;n++){
        for(int i=1;i<=n/2;i++){
           if(n%i==0){
                sum+=i;
            }
         }
         if(sum==n){
            System.out.println("完全数"+n);
         }
        }
    }
}
            
            

比如输入一个6,i=1<=3所以执行6%1取余等于0所以sum=1;然后i++=2再执行6%2取余等于0所以sum=1+2;然后i++=3再执行6%3取余等于0所以sum=1+2+3=6;因为sum=6=n=6;所以6是完全数。

3.23

分析:

12/2  6 ~ 0  //12除以2等于6余0
6/2   3 ~ 0  //6除以2等于3余0
3/2   1 ~ 1  //3除以2等于1余1
1/2   0 ~ 1  //1除以2等于0余1
1100          //倒序输出就是12的二进制

import java.util.Scanner;
class Demo03_23{
    public static void main(String[] args){
        Scanner scanner=new scanner(System.in);
        System.out.print("请输入一个整数:");
        int n=scanner.nextInt();
        
       String binstr="";        //binstr就是实现数字的倒序输出
        while(ture){
            binstr=n%2+binstr"";
            n/2;
            if(n==0){
            break;
            }
                
        }

    }
}

3.24

import java.util.Scanner;
class Demo03_24{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int num=0;
        int max=0;
        int count=0;
        System.out.print("请输入数字:");
        while(true){
            num=scanner.nextInt();
            if(num==0){
                break;
            }else if(num>max){
                max=num;
                count=1;
            }else if(num==max){
                count++;
            }
        }
        System.out.println("max="+max+",count="+count);
    }
}

输入3 5 2 5 5 5 0; 输出的结果是4.

发布了6 篇原创文章 · 获赞 1 · 访问量 216

猜你喜欢

转载自blog.csdn.net/qq_45824565/article/details/104252455
今日推荐