当前位置 : 主页 > 编程语言 > java >

Java基础题新手练习(三)

来源:互联网 收集:自由互联 发布时间:2021-08-21
目录 水仙花数 源码 计算分数的值 源码 最大公约数 源码 二进制1的个数 源码 二进制序列 源码 模拟登陆 源码 输出一个整数的每一位 源码 输出乘法口诀表 源码 总结 水仙花数 求出0~
目录
  • 水仙花数
    • 源码
  • 计算分数的值
    • 源码
  • 最大公约数
    • 源码
  • 二进制1的个数
    • 源码
  • 二进制序列
    • 源码
  • 模拟登陆
    • 源码
  • 输出一个整数的每一位
    • 源码
  • 输出乘法口诀表
    • 源码
  • 总结

    水仙花数

    求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本 身,如;153=1+5+3?,则153是一个“水仙花数“。)

    源码

    public static  void GetDaffodil(){
        int j=0;
        int k=0;
        int l=0;
        for(int i=0;i<=999;i++){
            j=i/100;
            k=(i-j*100)/10;
            l=(i-j*100-k*10);
            if(j*j*j+k*k*k+l*l*l==i){
                System.out.println(i+"是水仙花数");
               // continue;
            }
        }
    }
    

    运行结果:

    在这里插入图片描述

    计算分数的值

    计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。

    源码

    public static double  GetSum(){
        double sum= 0;
        int flag = 1;
        for (double i = 1;i<=100;i++) {
            sum+=(1/i)*flag;
            flag=-flag;
        }
       return sum;
    }
    

    运行结果:

    在这里插入图片描述

    最大公约数

    求两个正整数的最大公约数

    源码

    public static void  Getgcd(int a,int b){
        int c= a%b;
        while(c!=0){
            a = b;//18
            b = c;//6
            c = a % b;
        }
        System.out.println(b+"是a和b的最大公约数");
    }
    

    运行结果:

    在这里插入图片描述

    二进制1的个数

    求一个整数,在内存当中存储时,二进制1的个数

    源码

    public static  int  Getnum(int n){
        int count = 0;
        while(n!=0){
           if((n&1)!=0) {
               n = n >>> 1;
               count++;
           }
        }
        return count;
    }
    

    运行结果:

    在这里插入图片描述

    二进制序列

    获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列

    源码

    public  static  void  getBinnum(){
          Scanner sc= new Scanner(System.in);
            int num=sc.nextInt();
            System.out.print("odd sequence:");
            for(int i=30;i>=0;i-=2){
                System.out.print((num>>i)&1);
            }
            System.out.print("   even sequence:");
            for(int i=31;i>0;i-=2){
                System.out.print((num>>i)&1);
            }
            sc.close();
        }
    

    运行结果:

    在这里插入图片描述

    模拟登陆

    编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序

    源码

    public static  void GetPasswd(){
        int count = 3;
        while (count != 0) {
            Scanner scanner = new Scanner(System.in);
            String password = scanner.nextLine();
            if(password.equals("1234")) {
                System.out.println("登录成功!");
                break;
            }else {
                count--;
                System.out.println("还有"+count+"次机会!");
            }
        }
    

    运行结果:

    在这里插入图片描述

    输出一个整数的每一位

    输出一个整数的每一位,如:123的每一位是1 , 2 , 3

    源码

    public static void getdigit(){
        System.out.println("请输入三位数整数:");
        Scanner scanner = new Scanner(System.in);
        int  n= scanner.nextInt();
        int i=n/100;
        int j=(n-i*100)/10;
        int k=(n-i*100-j*10);
        System.out.println(n+"分解为"+i+" "+j+" "+k);
    }
    

    运行结果:

    在这里插入图片描述

    输出乘法口诀表

    输出n*n的乘法口诀表,n由用户输入。

    源码

    public static void PrintMultiption1(){
        System.out.println("请输入n的值: ");
        Scanner scanner = new Scanner(System.in);
        int n =scanner.nextInt();
        for(int i= 1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(i<=j)
                    System.out.print(i+"*"+j+"="+i*j+"  ");
            }
            System.out.println( );
        }
    }
    

    运行结果:

    在这里插入图片描述

    总结

    本篇java基础练习题就到这里了,希望对你有所帮助,也希望您能够多多关注自由互联的更多内容!

    网友评论