CSUST Online Judge4031 最喜欢的数

CSUST Online Judge4031 最喜欢的数在这里插入图片描述


题目大意即为: 给定一个数,找到`不大于这个数的最小2次幂的数


HashMap
在这里插入图片描述



按位或 + 无符号右移 代码


import java.util.Scanner;
/**
 * @author lankeren
 * @ClassName Main
 * @Deacription:
 * @create: 2020-10-25 20:33
 */
public class Main{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 多组输入
        while (in.hasNextInt()){
        // 仿 HashMap 源码写法
            int n = in.nextInt();
            n |= n >>> 1;
            n |= n >>> 2;
            n |= n >>> 4;
            n |= n >>> 8;
            n |= n >>> 16;
            // n + 1 为大于该数的最小2次幂, 那么 (n+1) / 2 即为不大于这个数的最大2次幂
            System.out.println((n + 1) / 2);
        }
    }
}



在这里插入图片描述

©️2020 CSDN 皮肤主题: 点我我会动 设计师:上身试试 返回首页