求int型数据在内存中存储时1的个数【即转换成二进制时1的个数】
例如:输入5 ,输出为 2
Python:
基础知识:while循环,if判断,python运算符(% 取余数,// 取商)
demo:
def convert(a,b=0):
a = abs(a) #取a的绝对值,以访输入的值为负数
while a >= 2:
if a % 2 == 1:
b += 1
a = a // 2
if a == 1:
b += 1
return b
print(convert(5))
GO:
基础知识:for循环,if条件判断,go函数定义,go语言运算符(%取余数, / 取商,++ 自增1)
demo:
package main
import (
"fmt"
)
func main(){
convert(-5,0)
}
//定义一个取绝对值的函数
func Abs(a int)int{
a = -a
return a
}
func convert(a,b int) {
//如果a是负数,调用函数转换成正数
if a < 0{
a = Abs(a)
}
for a >= 2 {
if a % 2 == 1 {
b ++
}
a = a / 2
if a == 1{
b ++
}
}
fmt.Println(b)
}