JavaSE基础50题:7. 写一个方法返回参数二进制中1的个数(3种方法!)

news2025/1/13 17:30:56

文章目录

    • 概述
    • 方法1
    • 方法2
    • 方法3

概述

返回参数中二进制中1的个数。 如: 15(十进制) —— 0000 1111(二进制) —— 4个1

①我们把二进制的数字的每一位都&1,其中:1&1=1 、0&1=0
②用无符号右移(>>>)来让每一位都与1相比较。

在这里插入图片描述

方法1

【概述】
用 for 循环,参数是32位的,所以我们循环32次。
【代码】

import java.util.Scanner;

 public static void fac1(){
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int count = 0;
            for (int i = 0; i < 32; i++) { //有32位,移32次
                if (((n >>> i) & 1)== 1) {
                    count++;
                }

            }
            System.out.println(count);
        }

    public static void main(String[] args) {
        fac1();
    }

【运行结果】
在这里插入图片描述

方法2

【概述】
用while循环来做,直接比较n是否为0,这样就不用管循环了多少次。

【代码】

 public static void fac2() {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int count = 0;

        while (n != 0) {
            if ((n & 1) == 1) {
                count++;
            }
            n = n >>> 1;
        }
        System.out.println(count);
    }
public static void main(String[] args) {
       fac2();
       }

【运行结果】
在这里插入图片描述

方法3

【概述】
用参数n & (n-1),每&一次都会少一个1,直到结果为0的时候结束。
如:7
在这里插入图片描述
【代码】

 public static void fac3() {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int count = 0;

        while (n != 0) {
            n = n & (n-1);
            count++;
        }
        System.out.println(count);
    }
    public static void main(String[] args) {
        fac3();
    }

【运行结果】
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1281530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一百八十八回 分享三个使用TextField的细节

文章目录 1. 概念介绍2. 使用方法2.1 修改组件的填充颜色2.2 修改组件的高度2.3 给组件添加圆角3. 示例代码4. 内容总结我们在上一章回中介绍了"DropdownButton组件"相关的内容,本章回中将介绍**TextField组件的细节.**闲话休提,让我们一起Talk Flutter吧。 1. 概念…

栈的链式存储(详解)

栈的链式存储 栈的链式存储是通过链表来实现的&#xff0c;每个节点包含一个元素和一个指向下一个节点的指针。链式存储的栈不需要提前分配内存空间&#xff0c;可以动态地增加或减少元素。 在链式存储中&#xff0c;栈顶元素通常是链表的头节点&#xff0c;栈底元素是链表的…

Flume 安装部署

文章目录 Flume 概述Flume 安装部署官方网址下载安装配置文件启动 Flume 进程启动报错输出文件乱码问题 Flume 概述 Flume&#xff08;Apache Flume&#xff09;是一个开源的分布式日志收集、聚合和传输系统&#xff0c;属于 Apache 软件基金会的项目之一。其主要目标是简化大…

使用OpenMVS重建模型

1、数据格式转换 首先将生成的稠密点云以及图片信息转换成openmvs支持的.mvs文件。在openmvs_sample中的bin文件内打开终端 作者&#xff1a;舞曲的小水瓶 https://www.bilibili.com/read/cv25019877/ 出处&#xff1a;bilibili interfaceCOLMAP.exe -i D:\desktop\test\toy\…

Proteus8.16仿真软件安装图文教程(Proteus 8 Professional)

Proteus8.16 &#x1f527;软件安装包下载链接&#xff1a;&#x1f527;视频教程&#x1f527;1 安装软件解压&#x1f527;2 安装&#x1f527;3 破解&#x1f527;4 汉化 &#x1f527;软件安装包下载链接&#xff1a; Proteus8.16软件下载链接 1、本文关于Proteus8.16 SP…

网工学习5 交换机端口相关配置

交换机的接口属性默认支待一般网络环境&#xff0c;一般情况下是不需要对其接口进行设置的。在某些情况下需 要对其端口属性进行配置时&#xff0c;配置的对象主要有接口隔离、速率、双工等信息。 5.1 接口隔离设置 > 配置接口 GE0/0/1 和 GE0/0/2 的接口隔离功能&#xf…

dart语言多线程遇到的问题:Isolate.spawnUri(),在真机调试中无法生成隔离

报错原因 [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: IsolateSpawnException: Unable to spawn isolate: Unsupported isolate URI: 未处理的异常&#xff1a;IsolateSpawnException&#xff1a;无法生成隔离&#xff1a;不支持隔离 URI&…

如何捕捉股票短线机会

一、个股相关新闻 1、盈利变化 当公司的盈利能力提升时&#xff0c;投资者就会积极地买入该股&#xff0c;股价短期内会上升。尤其是财报即将发布的阶段&#xff0c;那些能够盈利预增的股票往往会受到投资者青睐&#xff0c;使股价在短时间内大幅上涨。 比如&#xff0c;2022年…

leetcode - 矩阵区域和

1314. 矩阵区域和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c …

java源码-Java方法的定义和使用详解

1、 方法定义 如果我们想定义一个方法&#xff0c;基本语法如下&#xff1a; 修饰符&#xff1a;方法的修饰符是可选的&#xff0c;用于定义该方法的访问类型&#xff0c;可用的修饰符包括public/private/protected/默认的。 返回值&#xff1a;方法可以有返回值&#xff0c;…

RK3568平台开发系列讲解(Linux系统篇)通过OF函数获取属性

🚀返回专栏总目录 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过OF函数获取属性。 一、获取获取属性 ① of_find_property 函数 of_find_property 函数用于在设备树中查找节点 下具有指定名称的属性。 如果找到了该属性, 可以通过返回的属性结构体…

机械专业个人简历17篇

以下简历内容以机械专业相关岗位招聘需求为背景&#xff0c;我们整理了17篇且具有参考价值的简历案例&#xff0c;大家可以灵活借鉴&#xff0c;助理大家在众多候选人中脱颖而出。 机械专业简历模板下载&#xff08;可在线编辑制作&#xff09;&#xff1a;来幻主简历&#xf…

共识问题:区块链如何确认记账权?

区块链可以说是最近几年最热的技术领域之一&#xff0c;区块链起源于中本聪的比特币&#xff0c;作为比特币的底层技术&#xff0c;本质上是一个去中心化的数据库&#xff0c;其特点是去中心化、公开透明&#xff0c;作为分布式账本技术&#xff0c;每个节点都可以参与数据库的…

SpringBoot之自定义Starter

目录 一、自己的理解 1. 理解一 2. 理解二 二、自定义starter&#xff08;重点&#xff09; 三、以mybatis-spring-boot-starter为例进行分析 1. 写好自己的自动配置类逻辑 2. 创建自己的starter项目并引入自动配置类项目的依赖 3. 在其它项目中使用自定义的starter 一…

Spring MVC学习随笔-文件下载和上传(配置文件上传解析器multipartResolver)

学习视频&#xff1a;孙哥说SpringMVC&#xff1a;结合Thymeleaf&#xff0c;重塑你的MVC世界&#xff01;&#xff5c;前所未有的Web开发探索之旅 学习视频&#xff1a;【编程不良人】继spring之后快速入门springmvc,面对SpringMVC不用慌 六、SpringMVC 文件上传下载 6.1 文件…

【算法】单调队列 滑动窗口最大值

文章目录 例题——239. 滑动窗口最大值相关练习1438. 绝对差不超过限制的最长连续子数组解法1——两个单调队列分别维护最大值和最小值解法2——有序集合TreeMap 2398. 预算内的最多机器人数目解法1——二分答案 单调队列解法2——双指针 单调队列 &#xff08;不固定大小的滑…

使用docker切换任意版本cuda使用GPU

1.现存问题 在主机上运行很多下载来的机器学习代码时&#xff0c;这些大都运行在不同版本的tensorflow-gpu或者pytorch等的包下的。但是&#xff0c;运行代码的过程中&#xff0c;存在匹配的问题&#xff1a; 1.不同的版本的tensorflow-gpu或pytorch对cuda版本的适配也不一样…

Day49力扣打卡

打卡记录 需要添加的硬币的最小数量&#xff08;归纳法&#xff09; 链接 按着已经加入的数&#xff0c;以此偏移对应距离&#xff0c;从而得到新的连续数&#xff0c;若是出现断层则计入最小次数中&#xff0c;再以此偏移对应距离。 class Solution:def minimumAddedCoins(s…

H3C交换机堆叠配置(四台交换机配置堆叠)

最近需要扩大公司新项目环境&#xff0c;新买够了&#xff0c;四台二层交换机和两台三层交换机&#xff0c;二层交换机型号为H3C S5120&#xff0c;三层交换机为H3C S5500&#xff0c;因为项目有关于国家项目&#xff0c;必须使用国产网络设备&#xff0c;现在需要对四台交换机…

Python---函数递归---练习:使用递归求N的阶乘(如n=100)(本文以递归算法 解法为主)

相关链接&#xff1a;Python---函数递归---练习&#xff1a;斐波那契数列&#xff08;本文以递归算法为主&#xff09;-CSDN博客 Python---if选择判断结构、嵌套结构&#xff08;if elif else&#xff09;_python多重if嵌套-CSDN博客 案例&#xff1a;使用递归求N的阶乘&…