用python编写 给定一个a 数出a在二进制表示下1的个数
时间: 2023-11-27 17:52:20 浏览: 163
可以使用Python内置的bin()函数将整数转为二进制字符串,再遍历该字符串统计其中1的个数即可。具体代码如下:
```python
def count_ones(a):
# 将整数a转为二进制字符串
bin_str = bin(a)[2:]
# 遍历二进制字符串,统计其中1的个数
count = 0
for c in bin_str:
if c == '1':
count += 1
return count
```
使用示例:
```python
a = 23
print(count_ones(a)) # 输出:4
```
解释:23在二进制表示下为"10111",其中有4个1。
相关问题
给定一个正整数N,求最小的、比N大的正整数M,使得M与N的二进制表示中有相同数目的1。 举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么最小的比N大的并且二进制表示中只包含4个1的数是83,其二进制是1010011,因此83就是答案。 【输入】 输入若干行,每行一个数n(1≤n≤1000000),输入"0"结束。 【输出】 输出若干行对应的值。
好的,我知道了你的要求,下面是解答:
这道题可以从二进制的角度去思考,我们可以先统计出N二进制中1的个数,再从N+1开始,依次判断二进制中1的个数是否与N相等,直到找到第一个满足条件的数为止。
具体实现可以使用Python的bin函数将整数转化为二进制字符串,并使用count函数统计1的个数,代码如下:
给定一个二进制字符串,例如“10100101”,计算并输出字符串中0的个数以及所有数字之和
算法:
1. 初始化计数器count为0,sum为0。
2. 遍历字符串中的每个字符,如果是'0',则count加1,如果是'1',则将字符转换为数字并加到sum中。
3. 输出count和sum。
Python 代码:
```
s = input() # 输入二进制字符串
count = 0
sum = 0
for c in s:
if c == '0':
count += 1
elif c == '1':
sum += 1
print("Number of zeros:", count)
print("Sum of digits:", sum)
```
示例输出:
```
输入:10100101
输出:Number of zeros: 4
Sum of digits: 5
```
阅读全文