每日一题(小白)模拟娱乐篇13

今天题目比较简单,直接分析。小蓝想知道2024这个数字中有几个1,计算机组成学习好的同学肯定可以直接长除法或者瞪眼法得出答案:

2024=11111101000(B)也就是说2024中有一共有六个1

接下来用代码实现 ,我们也可以看出其中的有效数字为2,2,4;判断出2和4的二进制包含几个1就可以,先将数字转换为二进制,然后判断2024二进制包含几位1,输出即可。

代码实现👇

复制代码
		System.out.println(Integer.bitCount(2024));//瞪眼法

bitCount(int i) 函数,实现统计一个数的二进制位有多少个 1

复制代码
	public static void main(String[] args) {
		Scanner scanner =new Scanner(System.in);
		int i=2024;
		String binaryString = Integer.toBinaryString(i);
		int count=0;
		for (int j = 0; j < binaryString.length(); j++) {
			if (binaryString.charAt(j)=='1') {
				count++;
			}
		}
		System.out.println(count);
		
		scanner.close();
				
	}

转换法

复制代码
	public static void main(String[] args) {
		Scanner scanner =new Scanner(System.in);
		int i=2024;
		int count=0;
		while (i>0) {
			if (i%2!=0) {//二进制就是2的多少次方
				count++;
			}
			i/=2;
		}
		System.out.println(count);
				
	}

自己写方法

复制代码
	public static void main(String[] args) {
		Scanner scanner =new Scanner(System.in);
		int i=2024;
		int count=0;
		while (i>0) {
			count+=i%2;//与长除法类似,利用长除法的原理
			i/=2;
		}
		System.out.println(count);
				
	}
相关推荐
沉木渡香32 分钟前
VSCode中Java开发环境配置的三个层级(Windows版)1-3
java·windows·vscode
程序员小白条34 分钟前
度小满运维开发一面
java·运维·python·职场和发展·运维开发
小狗照亮每一天35 分钟前
【菜狗学聚类】序列嵌入表示、UMAP降维——20250930
算法·分类·聚类
彩云回3 小时前
支持向量机(SVM)
算法·机器学习·支持向量机
Leo655356 小时前
JDK8 的排序、分组求和,转换为Map
java·开发语言
Asmalin8 小时前
【代码随想录day 29】 力扣 135.分发糖果
算法·leetcode·职场和发展
微笑尅乐8 小时前
多解法详解与边界处理——力扣7.整数反转
算法·leetcode·职场和发展
夏鹏今天学习了吗8 小时前
【LeetCode热题100(31/100)】K 个一组翻转链表
算法·leetcode·链表
薰衣草23338 小时前
力扣——位运算
python·算法·leetcode
未知陨落8 小时前
LeetCode:83.打家劫舍
算法·leetcode