Java刷题改进

简介: Java刷题改进

小魏又来了,嘿嘿嘿,一日不见当如隔三秋啊!给大家比个心❤❤❤


import java.util.Scanner;
/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: WHY
 * Date: 2022-04-28
 * Time: 12:12
 */
public class TestDemo {
//几个数字包含9   19
public static void main17(String[] args) {
    int i=0;
    int count =0;
    for(i=1;i<=100;i++){
        if(i%10==9){
            count++;
        }else  if(i/10==9){//答案就是19,主要区别就在于99,改为这样的语句就变成了选择语句,执行1
            count++;
        }
    }
    System.out.println(count);
}
    //统计1-100出现9的次数    20
    public static void main16(String[] args) {
        int i=0;
        int count =0;
        for(i=1;i<=100;i++){
            if(i%10==9){
                count++;
            }if(i/10==9){
                count++;
            }
        }
        System.out.println(count);
    }
    //打印x型图案
    public static void main15(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNextInt()) {
            int n = scanner.nextInt();
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    if (i == j) {
                        System.out.print("*");
                    } else if (i + j + 1 == n) {
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
        }
    }
    public static void main14(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int count =3;
        while(count!=0){
            System.out.println("请输入密码");
            String password= scanner.nextLine();
            if(password.equals("123456")){
                System.out.println("登录成功");
                break;
            }else{
                count--;
                System.out.println("你还有"+count+"次机会");
            }
        }
    }
  //获取一个二进制数奇数位和偶数位,分别输出二进制序列
    //1.怎么确定某个位    假设要拿到最左边的数字,就向右移动31位,这个数来到了最右边,再让他与1按位与,就能确定它是几了
    //2.怎么拿到指定的二进制位  &
    //7的二进制后8位:   0000   0111
    //奇数位    0011
    //偶数位    0010
  public static void main13(String[] args) {
      int n=7;
      //偶数位
      for (int i = 31; i >=1 ; i-=2) {
          System.out.print(((n>>i)&1));
      }
      System.out.println();
      //奇数位
      for (int i = 30; i >=0 ; i-=2) {
          System.out.print(((n>>i)&1));
      }
  }
    //写一个函数,返回参数中二进制中1的个数
    //n&(n-1),每&上一个1,就少一个1,知道n变为0;
    public static void main12(String[] args) {
        int n=7;
        int count =0;
        while(n!=0){
            n=n&(n-1);
            count++;
        }
        System.out.println(count);
    }
    /**
     * 采用无符号右移可以解决负数的问题
     * @param args
     */
    public static void main11(String[] args) {
        int n=-1;
        int count =0;
        while(n!=0){
            if((n&1)!=0){
                count++;
            }
            n=n>>>1;
        }
        System.out.println(count);
    }
    public static void main10(String[] args) {
        int n=7;
        int count =0;
        while(n!=0){
            if((n&1)!=0){
                count++;
            }
            n=n>>1;
        }
        System.out.println(count);
    }
    public static void main9(String[] args) {
        int n=7;
        int count =0;
        for (int i = 0; i < 32; i++) {
                if(((n>>i)&1)!=0){
                    count++;
                }
        }
        System.out.println(count);
    }
    //六位自幂数代码实现//思路1.求出是几位数
    //2.分别求出每一位上得数是几
    public static void main8(String[] args) {
        int i=0;
        for (i=1;i<999999;i++){
            int tmp=i;
            int count =0 ;//位数
            while(tmp!=0){
                count++;
                tmp/=10;
            }
            tmp=i;
            int sum=0;
            while(tmp!=0){
                sum+=Math.pow(tmp%10,count);//sum存储的是tmp的每一位的count次方和
                tmp/=10;
            }
            if(sum==i){
                System.out.println(i+"是六位自幂数");
            }
        }
    }
    //辗转相除法求最大公约数
    public static void main7(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = a%b;
        while (c != 0) {
            a = b;
            b = c;
            c = a%b;
        }
        System.out.println(b+" 是最大公约数!");
    }
    public static boolean isPrime2(int n) {
        //方法实现2
        int i = 1;
        for (i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                //System.out.println(n + "不是素数");
               break;
            }
        }
        if (i > Math.sqrt(n)) {
            //System.out.println(n + "是素数");
            return true;
        }
        return false;
    }
    public static void main6(String[] args) {
        int i=1;
        for(i=1;i<101;i++){
           boolean ret=isPrime2(i);
           if(ret){
               System.out.println(i+"是素数");
           }
        }
    }
    //一般方法实现1-100打印素数
    public static void main5(String[] args) {
        int i=2;
        for(int j=1;j<101;j++){
            for (i=2; i <= Math.sqrt(j); i++) {
                if (j % i == 0) {
                    System.out.println(j + "不是素数");
                    break;
                }
            }
            if (i > Math.sqrt(j)) {
                System.out.println(j + "是素数");
            }
        }
    }
    public static void isPrime1(int n) {
        //方法实现1
        int i = 1;
        for (i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                System.out.println(n + "不是素数");
                break;
            }
        }
        if (i > Math.sqrt(n)) {
            System.out.println(n + "是素数");
        }
    }
    public static void main4(String[] args) {
        for (int i = 1; i <101; i++) {
            isPrime1(i);
        }
    }
//判断一个数是不是素数
    public static void main3(String[] args) {
        int n=7;
        int i=1;
        for ( i = 2; i <=Math.sqrt(n); i++) {
            if(n%i==0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(i>Math.sqrt(n)){
            System.out.println(n+"是素数");
        }
    }
    public static void main2(String[] args) {
        int n=7;
        int i=1;
        for ( i = 2; i <=n/2; i++) {
            if(n%i==0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(i>n/2){
            System.out.println(n+"是素数");
        }
    }
    //判断一个数是不是素数
    public static void main1(String[] args) {
    int n=7;
    int i=1;
        for ( i = 2; i <n; i++) {
            if(n%i==0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(n==i){
            System.out.println(n+"是素数");
        }
    }
}
相关文章
|
2天前
|
算法 Java C++
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
刷题两个月,从入门到字节跳动offer丨GitHub标星16k+,美团Java面试题
|
3天前
|
消息中间件 前端开发 Java
java面试刷题软件kafka和mq的区别面试
java面试刷题软件kafka和mq的区别面试
|
4天前
|
Java 测试技术
【Java 刷题记录】模拟
【Java 刷题记录】模拟
18 2
|
4天前
|
算法 Java C++
【Java 刷题记录】位运算
【Java 刷题记录】位运算
8 2
|
4天前
|
Java
【Java 刷题记录】前缀和
【Java 刷题记录】前缀和
10 2
|
4天前
|
算法 Java 索引
【Java 刷题记录】双指针(下)
【Java 刷题记录】双指针
10 0
|
4天前
|
算法 Java 容器
【Java 刷题记录】双指针(上)
【Java 刷题记录】双指针
9 0
|
4天前
|
Java 索引
JAVA刷题之数组的总结和思路分享
JAVA刷题之数组的总结和思路分享
|
4天前
|
Java
JAVA刷题之字符串的一些个人思路
JAVA刷题之字符串的一些个人思路
|
4天前
|
算法 Java
Java刷题有感
Java刷题有感