华为机试_HJ62 查找输入整数二进制中1的个数【简单】【收藏】

news2024/11/16 17:42:10

目录

描述

输入描述:

输出描述:

解题过程

提交代码一(常规方法)

提交代码二(位运算方法)

学习代码

代码一

代码二

收藏点


描述

输入一个正整数,计算它在二进制下的1的个数。

注意多组输入输出!!!!!!

数据范围:1≤n≤2^31−1 

输入描述:

输入一个整数

输出描述:

计算整数二进制中1的个数

解题过程

啪的一下啊,很快啊。

我觉得是考察多组出入输出。

不对,上面写的是考察位运算。所以,以后确实要看考察点了,不能随便写。

提交代码一(常规方法)

#include <stdio.h>

int main() {
    int a, b=0;
    while (scanf("%d", &a) != EOF) { 
        while(a)
        {
            if(a%2==0)
            a/=2;
            else 
            {
                b++;
                a--;
                a/=2;
            }
        }
        printf("%d\n",b);
        b=0;
    }
    return 0;
}

提交代码二(位运算方法)

//位运算方法

#include <stdio.h>
int main() {
    int a, b=0;
    int ii=32;
    while (scanf("%d", &a) != EOF) { 
        b=0;
        while(ii)
        {
            if((a&1)==1)//其实更好是a&0x01;
            {b++;}
            a>>=1;
            ii--;
        }
        printf("%d\n",b);
    }
    return 0;
}

学习代码

代码一

(来源:https://www.nowcoder.com/users/297309805)

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int n;
    int count = 0;  
    while(scanf("%d",&n)!=EOF)
    {
        count = 0;
        do{
            count+= n&0x01; 
        }while((n>>=1)>0);
        printf("%d\n",count);
    } 
    return 0;
}

我觉得值得学习的一点是,他的条件是这样限制的:

这样就降低了时间复杂度。


代码二

(来源:【十二题解】 | #查找输入整数二进制中1的个数#_牛客博客)

#include<stdio.h>

int main(){
    int number;
    while(scanf("%d", &number) !=EOF){
        int count = 0;
        for(int i=0; i<31; i++){
            if(number & 1 == 1)count++;
            number >>= 1;
        }
    printf("%d\n", count);
}

和我的思路很像,优势在于简洁。

收藏点

位运算注意三点:

1. 右移/2,左移*2,这个我能记住;

2. num>>=1的格式

3. num&0x01的写法,更专业。

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

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

相关文章

kubernetes学习之路--基础概念以及搭建

写在前面&#xff1a;代码审计太难了&#xff0c;不想学了摆烂了&#xff0c;开始学云安全了。。。。 一.云介绍 云分类&#xff1a;公有云、私有云、混合云 云有三种服务模式&#xff1a;Laas、Paas 和 Saas Laas&#xff1a;基础设施即服务&#xff08;Infrastructure-as…

[附源码]计算机毕业设计酒店客房管理信息系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Git版本控制器

文章目录1.Git介绍1.1.什么是Git?1.2.Git的历史1.3.版本控制分类1.3.1.集中式版本控制1.3.2.分布式版本控制1.4.Github&#xff08;Git服务器&#xff09;1.5.Git原理2.使用前的准备2.1.准备Git2.1.1.安装Git2.1.2.配置环境变量2.1.3.IEDA配置Git2.1.4.安装git插件&#xff08…

java面向对象 final static 关键字

目录 关键字&#xff1a;static 类属性、类方法的设计思想 类变量(class Variable) 静态变量的内存解析 类方法(class method) 单例 (Singleton)设计模式 理解main方法的语法 代码块 关键字&#xff1a;final 总结 关键字&#xff1a;static 当我们编写一个类时&…

Vue.js设计与实现,读书笔记第一章

第一章&#xff1a;权衡的艺术 1.1命令式和声明式 jq是命令式,关注过程&#xff0c;jq针对简化dom 而产生的 vue是 声明式&#xff0c;关注实现&#xff0c;不严格地说就像是在命令式(关注过程)基础上再对标签进行了一次封装&#xff08;关注实现&#xff09; jQuery命令式…

干货 | Jmeter 如何保证抢购、秒杀活动正常运行?

1. 前言 平常为了保证运营促销、抽奖活动能正常运行&#xff0c;我们一般都需要使用 Jmeter、LoadRunner 对接口进行压力测试 使用它可以模拟一定量的用户同时去参与促销抽奖活动&#xff0c;最后生成测试报告&#xff0c;以此判系统接口的稳定性 本篇文章以抢购商品为例&am…

清华毕业大佬用了一个项目就把SpringMVC+Spring+MyBatis给讲完了

前言 时间飞逝&#xff0c;转眼间毕业七年多&#xff0c;从事 Java 开发也六年了。我在想&#xff0c;也是时候将自己的 Java 整理成一套体系。 这一次的知识体系面试题涉及到 Java 知识部分、性能优化、微服务、并发编程、开源框架、分布式等多个方面的知识点。 写这一套 Ja…

R语言学习笔记——入门篇:第五章-高级数据管理

R语言 R语言学习笔记——入门篇&#xff1a;第五章-高级数据管理 文章目录R语言一、数值与字符处理函数1.1、数学函数1.2、统计函数1.3、概率函数1.4、字符处理函数1.5、其他实用函数1.6、将函数应用于矩阵与数据框二、控制流2.1、循环&#xff08;for&#xff0c;while&#…

从零开始带你实现一套自己的CI/CD(三)Jenkins+Harbor

目录一、简介二、安装Harbor2.1 Amd64架构安装Harbor2.2 Arm64架构安装Harbor找不到make命令找不到git命令执行make download和make compile_redis失败执行make compile_redis命令执行make prepare_arm_data命令执行make pre_update命令执行make compile COMPILETAGcompile_gol…

【OpenCV-Python】教程:4-4 SIFT 介绍

OpenCV Python SIFT (尺度不变特征变换) 【目标】 SIFT算法SIFT特征点和描述子 【理论】 前面的章节中&#xff0c;我们提到了角点检测&#xff0c;例如Harris角点&#xff0c;他们是旋转不变的&#xff0c;因为&#xff0c;图像无论如何旋转&#xff0c;其角点特性不会发生…

世界杯8强盘点

2022年卡塔尔世界杯&#xff08;英语&#xff1a;FIFA World Cup Qatar 2022&#xff09;是第二十二届世界杯足球赛&#xff0c;是历史上首次在卡塔尔和中东国家境内举行、也是第二次在亚洲举行的世界杯足球赛。除此之外&#xff0c;卡塔尔世界杯还是首次在北半球冬季举行、首次…

docker(八)compose

compose 一 简介&#xff1a; 通过前面几篇文章&#xff0c;我们了解了docker的基本知识&#xff0c;docker帮我们解决了服务打包安装的问题&#xff0c;但是随着服务的不断增多带来了如下问题&#xff1a; 多次使用Dockerfile Build Image或者DockerHub拉取Image;需要创建多…

Spark 动态资源分配参数与源码原理分析

1.1.1、Dynamic Allocation 1.1.1.1 参数说明 1.2 版本 参数名及默认值含义spark.dynamicAllocation.enabled false是否开启动态资源分配&#xff0c;主要是基于集群负载分配executorspark.dynamicAllocation.executorIdleTimeout60sexecutor空闲时间达到规定值&#xff0c…

程序人生:化解互联网 “寒冬” 危机,我教你摆脱困境

三年反复的yi情&#xff0c;近20年史无前例的互联网裁员潮汹涌而至。 寒冬来袭&#xff0c;每一个职场打工人&#xff0c;都感到了寒意。 互联网企业大裁员的底层逻辑&#xff0c;一方面是受宏观环境影响&#xff08;yq、互联网红利结束、政策变化等&#xff09;&#xff0c;…

ChatGPT震撼上市,AI也开始跟你卷了,来一起看看怎么用ChatGPT!!!

强大AI产品&#xff0c;ChatGPT震撼上市&#xff0c;程序员真的要失业了吗&#xff1f; 最近聊天机器人异常火爆&#xff0c;火爆到什么程度&#xff0c;卖个关子&#xff0c;下文解释。 OpenAI推出了ChatGPT&#xff0c;它能够回答各种各样的问题&#xff0c;包括生成代码&a…

Node.js学习下(70th)

一、Buffer 缓冲区 背景 1、浏览器没有储存图片文件等媒体文件的需求&#xff0c;JS 存的都是一些基本数据类型。 2、服务器需要存储图片/视频/音频等媒体文件&#xff0c;因此有了 Buffer 缓冲器。 1. Buffer 是什么 Buffer 是一个和数组类似的对象&#xff0c;不同是 Buf…

python代码学习1

\n 换行符号 \r 回车 \b 后退一个格 \t 制表符&#xff08;4个字符为一组&#xff0c;当不字符被占有时&#xff0c;重新生成一个制表符。如果被占据&#xff0c;不满4个字符时&#xff0c;生成剩余部分空格。&#xff09; #原字符 不希望字符串中转义字符起作用&#xff0…

FME Server 无代码环境中自动化您数据和应用集成工作流

专为现代企业打造 简化数据和应用程序集成&#xff0c;让您的数据为您所用。在FME Desktop中创作工作流&#xff0c;并使用 FME Server 将其自动化&#xff0c;以按计划或响应事件运行数据集成。 构建无代码 Web 应用程序&#xff0c;提供自助式数据提交和验证&#xff0c;并向…

Java学习之动态绑定机制

目录 举例说明 父类 子类 main类 运行结果 ​编辑 动态绑定 举例说明 父类 子类 main类 分析 运行结果 Java重要特性&#xff1a;动态绑定机制&#xff08;非常重要&#xff09; 举例说明 父类 class A {//父类public int i 10;public int sum() {return getI(…

2022年11月国产数据库大事记-墨天轮

本文为墨天轮社区整理的2022年11月国产数据库大事件和重要产品发布消息。 文章目录11月国产数据库大事记&#xff08;时间线&#xff09;产品/版本发布兼容认证排行榜新增数据库11月国产数据库大事记&#xff08;时间线&#xff09; 11月1日&#xff0c;国际知名研究机构 IDC …