题目
一条语句判断一个整数是不是2的整数次方
解题思路
这题和上一题目 二进制中1的个数 很相似,题目翻译过来的意思就是二进制中有几个1? 现在你脑海里马上能想到的应该是用二进制32位去进行计算。
得出公式:(N-1)&N == 0
代码实现:
import java.util.Scanner; public class four { public static void main(String[] args) { //用一条语句判断一个整数是不是2的整数次方。 Scanner sc = new Scanner(System.in); int N = sc.nextInt(); System.out.println(Integer.toString(N, 2)); int count = 0; while (N != 0) { if (((N = (N - 1) & N) == 0)) { System.out.println("是"); }else{ System.out.println("不是"); } } } }