统计给定数字中先导0的个数 输入格式: 属于一个数(有可能包含先导0) 用python写
时间: 2024-06-13 14:09:00 浏览: 128
以下是Python实现统计给定数字中先导0的个数的方法:
```python
def cntLeadingZeros(num):
num = int(num)
mask = 0x80000000
count = 0
while mask != 0 and (num & mask) == 0:
count += 1
mask >>= 1
return count```
这个函数的实现方法是,将输入的数字转换为整型,然后使用一个掩码(mask)来逐位检查数字的二进制表示中的每一位是否为0。如果是0,则计数器加1,否则掩码右移一位。当掩码为0或者数字的二进制表示中的某一位为1时,循环结束,返回计数器的值。
相关问题
题目描述: 给定一个字符串,统计其中英文字母和数字字符的个数。 输入格式: 输入为一个字符串,长度不超过10000。 输出格式: 输出两个整数,分别表示字符串中英文字母和数字字符的个数,中间用一个空格隔开。 样例输入: Hello123 样例输出: 5 3 解题思路: 遍历字符串,判断每个字符是否为英文字母或数字字符,如果是则对应计数器加1。 代码实现:
以下是实现英文字母和数字字符计数的代码:
```python
s = input()
letter_count, number_count = 0, 0
for c in s:
if c.isalpha(): # 判断是否为英文字母
letter_count += 1
elif c.isdigit(): # 判断是否为数字字符
number_count += 1
print(letter_count, number_count)
```
注意事项:
- 代码中使用了字母计数器`letter_count`和数字计数器`number_count`来记录英文字母和数字字符的数量。
- 字符串中的每个字符用`for`循环遍历,并使用`isalpha()`函数和`isdigit()`函数来判断是否为英文字母或数字字符。
- 最后输出统计结果即可。
用python写以下程序,任务一:实现统计问题1关键算法并绘制流程图 输出数组第 k 大的数。 说明:首先输入一个整数 n,代表数组的长度,随后输入 n 个数,代表数组的元素,最 后输入一个整数 k,你需要输出这 n 个数中第 k 大的数(0<k<=n)。 例如输入: 5 5 3 1 2 4 3 输出这 5 个数中第 3 大的数: 3 注意:使用数组完成。 任务二:实现统计问题2关键算法并绘制流程图 统计给定的 n 个数中,负数、零和正数的个数。对于每组输入数据,输出一行 a,b 和 c, 分别表示给定的数据中负数、零和正数的个数。首先输入一个数 n,代表有需要统计的有 n 个数,然后输入 n 个数。 例如输入: 5 1 2 3 0 -4 输出: 1 1 3 注意:使用数组和判断语句完成。 任务三:实现统计问题3关键算法并绘制流程图 用户依次输入n个数,输出这n个数中的最大数和最小数。首先输入一个数 n,代表有需要统计的有 n 个数,然后输入 n 个数。
很高兴回答你的问题!以下是任务一、任务二、任务三的Python代码:
任务一:
```python
n = int(input("请输入数组长度n:"))
arr = []
for i in range(n):
num = int(input(f"请输入第{i+1}个数:"))
arr.append(num)
k = int(input("请输入k:"))
def quick_select(arr, k):
if len(arr) == 1:
return arr[0]
else:
pivot = arr[0]
bigger = []
smaller = []
equal = []
for num in arr:
if num > pivot:
bigger.append(num)
elif num < pivot:
smaller.append(num)
else:
equal.append(num)
if k <= len(bigger):
return quick_select(bigger, k)
elif k <= len(bigger) + len(equal):
return pivot
else:
return quick_select(smaller, k - len(bigger) - len(equal))
result = quick_select(arr, k)
print(f"数组中第{k}大的数是{result}")
```
任务二:
```python
n = int(input("请输入需要统计的数的个数n:"))
arr = []
for i in range(n):
num = int(input(f"请输入第{i+1}个数:"))
arr.append(num)
positive = 0
negative = 0
zero = 0
for num in arr:
if num > 0:
positive += 1
elif num < 0:
negative += 1
else:
zero += 1
print(f"负数个数:{negative}")
print(f"零的个数:{zero}")
print(f"正数个数:{positive}")
```
任务三:
```python
n = int(input("请输入需要统计的数的个数n:"))
arr = []
for i in range(n):
num = int(input(f"请输入第{i+1}个数:"))
arr.append(num)
max_num = arr[0]
min_num = arr[0]
for num in arr:
if num > max_num:
max_num = num
if num < min_num:
min_num = num
print(f"最大数是{max_num}")
print(f"最小数是{min_num}")
```
希望能帮到你!
阅读全文