首页 > 系统相关 >【牛客刷题】HJ15 求int型正整数在内存中存储时1的个数

【牛客刷题】HJ15 求int型正整数在内存中存储时1的个数

时间:2023-02-15 11:33:33浏览次数:68  
标签:count HJ15 func int fmt 牛客 str main

题目链接

题倒是很简单,最开始用了这么一种解法:

package main

import "fmt"

func main() {
	a := 0
	fmt.Scan(&a)

	str := fmt.Sprintf("%b", a)

	fmt.Printf("%d", convert(str))
}

func convert(str string) int {
	sum := 0
	for i := 0; i < len(str); i++ {
		if str[i] == '1' {
			sum += 1
		}
	}
	return sum
}

但是看着就不是很优雅,还是用位运算看着优雅些:

package main

import "fmt"

func main() {
	a := 0
	fmt.Scan(&a)
	count := 0
	for a != 0 {
		if a&1 == 1 {
			count += 1
		}
		a = a >> 1
	}
	fmt.Printf("%d", count)
}

标签:count,HJ15,func,int,fmt,牛客,str,main
From: https://www.cnblogs.com/wingsless/p/17122166.html

相关文章

  • Spring6之HTTP Interface分析
    目录1HTTPInterface1.1引言1.2示例1.2.1创建服务端1.2.2SpringBoot工程1.3深入分析1.3.1GetExchange(HttpExchange)1.3.2UserApiService实例创建1.4其他特性1HT......
  • 富文本编辑器实现一键导入PowerPoint
    ​ 自动导入Word图片,或者粘贴Word内容时自动上传所有的图片,并且最终保留Word样式,这应该是Web编辑器里面最基本的一个需求功能了。一般情况下我们将Word内容粘贴到Web编辑......
  • 中英文章5 互联网的利与弊(The Prons and Cons of the Internet)
      TheProsandConsoftheInternet互联网的利与弊 TheInternethasrevolutionizedthewaywecommunicate,workandlearn.Ithasbroughtusmany b......
  • [LeetCode] 1124. Longest Well-Performing Interval
    Wearegiven hours,alistofthenumberofhoursworkedperdayforagivenemployee.Adayisconsideredtobea tiringday ifandonlyifthenumberofh......
  • SharePoint Online 根据已存在列表创建列表
    前言在SharePointOnline的使用中,根据已经存在的列表进行列表创建,是经常的操作。尤其,当我们在一个租户上创建不同SharePoint站点作为开发、测试、生产环境的时候......
  • SharePoint Online 根据Excel文件创建列表
    前言在SharePointOnline的使用中,根据Excel文件进行列表创建,是经常的操作。尤其,当我们在一个Excel上设计了站点结构的时候。正文1.在网站内容页面中,点......
  • 牛客2023情人节比赛总结
    来水一篇...今天的比赛还是蛮简单的(虽然也没ak吧)主要有两个点要提醒一下自己,一个是组合公式\(k*C_n^{k}=n*C_{n-1}^{k-1}\),还有一个是一个并不难证明的结论:若\(\frac{a......
  • 惠普ZBook 14u G5(3XG37PA)电脑 Hackintosh 黑苹果efi引导文件
    原文来源于黑果魏叔官网,转载需注明出处。硬件型号驱动情况主板处理器酷睿i5-8250U已驱动内存8GB(智典DDR42400MHz8GB)已驱动硬盘三星pm981(已更换sm961,并添加一块东......
  • 牛客情人节 (悸动的距离)
      点击查看代码 inta,b,c,d; cin>>a>>b>>c>>d; intans=0; if(a>=0&&c<=0||c>=0&&a<=0)ans++;//x轴交点 if(b>=0&&d<=0||b>=0&&d<=0)ans++;//y轴交点 if......
  • 【C】printf()和scanf()
    转换说明%a,%A浮点数,十六进制数和p计数法%c单个字符%d十进制数%e,%E浮点数,e记数法%f浮点数,十进制记数法%g,%G根据值自动选择%f或%e。%e格式用指数小......