【问题描述】输入一个整数,求该整数上的各位数是否包含数字5,若有,则按从低到高的顺序输出第几位,若没有则输出-1 【输入形式】 【输出形式】每一行代表包含数字5的位数 【样例输入】 1223 【样例输出】 -1 【样例输入】 125 【样例输出】 1
时间: 2024-11-15 17:33:34 浏览: 23
这个问题的描述是要编写一个程序,接收一个整数作为输入,检查这个整数的每一位上是否有数字5。如果没有找到数字5,则输出-1;如果有,就按照从低位(最低位数字开始计数)到高位的顺序找出第一位包含数字5的位置,并输出相应的序号。例如,对于输入的整数1223,由于没有5,所以输出-1;而对于125,数字5位于第二位(因为是从最低位开始计数),所以输出1。
实现这种功能,可以遍历整数的每一位,检查是否包含5,一旦发现5就立即停止并返回当前位数。如果没有找到5,就在遍历结束后返回-1。
```python
def find_position_with_5(num):
for i in range(10): # 遍历到十进制最大位(假设无科学记数法)
if str(num).endswith('5') and num != 0: # 判断当前位是否有5,同时排除0本身
return i + 1 # 返回从0开始的位数
return -1 # 如果没有找到5,返回-1
# 示例测试
print(find_position_with_5(1223)) # 输出:-1
print(find_position_with_5(125)) # 输出:1
```
相关问题
【问题描述】输入一个整数,求该整数上的各位数是否包含数字5,若有,则按从低到高的顺序输出第几位若没有则输出-1
这是一个简单的程序需求,通常在编程中可以使用循环和条件判断来解决。以下是用 Python 编程语言的一个例子:
```python
def find_five(num):
# 初始化一个空列表存储找到的5的位置
five_positions = []
# 转换为字符串以便遍历每一位
num_str = str(num)
# 遍历每一位
for i, digit in enumerate(num_str):
if digit == '5':
five_positions.append(i+1) # 加1是因为索引是从0开始的
# 检查是否有5位存在
if not five_positions:
return -1
else:
# 返回从低到高排序的5的位置
return sorted(five_positions)
# 示例使用
input_num = int(input("请输入一个整数: "))
result = find_five(input_num)
if result != -1:
print("数字5的位置为:", ", ".join(map(str, result)))
else:
print("该数字不含数字5.")
```
在这个程序中,我们首先将输入的整数转换为字符串,然后逐个检查每个字符。如果遇到数字5,就把它在原位置基础上加1(因为索引从0开始计数)添加到结果列表里。最后如果没有找到5,返回-1;否则,返回排序后的5位列表。
【问题描述】输入一个整数,求该整数上的各位数是否包含数字5,若有,则按从低到高的顺序输出第几位,若没有则输出-1
您可以按照以下步骤解决这个问题:
1. 将整数转换为字符串,方便逐位判断数字是否为5。
2. 逐位判断数字是否为5,若是则记录该位数的位置。
3. 若存在数字5,则按照从低到高的顺序输出记录的位置;若不存在数字5,则输出-1。
下面是Python代码实现:
```python
num = int(input()) # 输入整数
num_str = str(num) # 转换为字符串
positions = [] # 记录数字5的位置
# 逐位判断数字是否为5,若是则记录位置
for i in range(len(num_str)):
if num_str[i] == '5':
positions.append(i+1)
# 判断是否存在数字5
if len(positions) == 0:
print(-1)
else:
# 按照从低到高的顺序输出记录的位置
for pos in positions:
print(pos, end=' ')
```
例如,输入整数`15325`,则输出`2 4 5`,表示该整数上的第2、4、5位是数字5。如果输入整数`1234`,则输出`-1`,表示该整数上不包含数字5。
阅读全文