首页 > 编程语言 > Java基础题新手练习(三)
2021
10-12

Java基础题新手练习(三)

水仙花数

求出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基础练习题就到这里了,希望对你有所帮助,也希望您能够多多关注自学编程网的更多内容!

编程技巧