1120 习题8-16 整数提取

该博客介绍了一道编程题目,要求从包含数字和非数字字符的字符串中,提取连续数字作为整数存入数组,同时统计整数个数并输出相关信息。
摘要由CSDN通过智能技术生成

题目描述

输入一个字符串,内含数字和非数字字符,如:

A123x456.17960?302t ab5876

将其中连续的数字作为一个整数,依次存放在一个整型数组中(假设数组名为a)。如上例所示,将123放在a[0]中,456放在a[1]中,17960放在a[2]中,........,同时统计整数的个数并输出相关的信息。

### 回答1: 这道题需要统计一批整数中出现最多的个位数字。我们可以先将这批整数的个位数字提取出来,然后再统计每个数字出现的次数,最后找出出现次数最多的数字即可。 具体做法如下: 1. 将这批整数的个位数字提取出来,可以用取模运算(%10)实现。 2. 统计每个数字出现的次数,可以用一个长度为10的数组来存储,数组下标表示数字,数组元素表示出现次数。 3. 找出出现次数最多的数字,可以遍历数组,找到出现次数最多的元素的下标,即为最多出现的数字。 下面是示例代码: ```python # 输入一批整数 nums = list(map(int, input().split())) # 统计每个数字出现的次数 count = [] * 10 for num in nums: count[num % 10] += 1 # 找出出现次数最多的数字 max_count = max_digit = for i in range(10): if count[i] > max_count: max_count = count[i] max_digit = i # 输出结果 print(max_digit) ``` 注意,这里假设输入的整数都是整数。如果输入的整数可能是负数,需要先将其转换为正数再进行取模运算。 ### 回答2: 此题需要对输入的一批整数进行统计,并统计出其中个位数字出现最多的数字。下面给出一种简单的思路。 1. 接收输入的整数集合。 首先,需要定义一个列表或数组,用来存放输入的多个整数。可以使用 input 函数来获取用户输入,也可以将固定数量的整数写死在程序中。这里假设使用 input 函数获取用户输入。 2. 统计个位数字。 对于每个输入的整数,需要将其个位数字找出来,并统计出现次数。可以使用取模运算(%)来获得个位数字,使用一个字典来存储各个数字出现的次数,例如: digit_count = {} # 定义一个空字典,用来存放数字出现的次数 for num in num_list: digit = num % 10 # 取出个位数字 if digit not in digit_count: # 如果该数字尚未在字典中出现过 digit_count[digit] = 1 # 则将其添加到字典中,计数为 1 else: digit_count[digit] += 1 # 如果已经在字典中出现过,则计数加 1 3. 找出出现次数最多的数字。 最后,需要遍历字典,找出出现次数最多的数字。可以使用一个变量来记录目前为止看到的出现次数最多的数字及其出现次数,例如: max_count = 0 max_digit = -1 # 如果找不到任何数字,就返回 -1 for digit, count in digit_count.items(): # 遍历字典中的所有数字和其计数 if count > max_count: # 如果当前数字出现次数更多 max_digit = digit # 则更新出现次数最多的数字 max_count = count # 同时更新最大出现次数 上述代码逻辑应该比较容易理解。需要注意的是,为了防止找不到任何数字而返回空值,设置了 max_digit 的初始值为 -1。如果需要输出多个出现次数相同的数字,可以将它们存储在一个列表中。 ### 回答3: 题目描述: 输入一批整数,求出这些整数中个位数字出现最多的数字以及出现的次数。 解题思路: 首先,我们需要将输入的整数分离出各个位上的数字,可以用%10来获取个位数。然后,我们需要一个计数器数组来记录个位数出现的次数,每遍历到一个个位数,就让对应的计数器加1。最后,再遍历一遍计数器数组,找出出现次数最多的数字。如果有多个数字出现次数相同,我们可以将它们都记录下来,最后输出即可。 算法流程: 1. 首先输入整数数量n,以及n个整数a1,a2,a3,...,an。 2. 初始化计数器数组count,将其全部赋值为0。 3. 对于每一个输入的整数,遍历其整数各位上的数字。 4. 对于每个数字,将其个位数作为下标,在计数器数组中对应的位置上加1。 5. 遍历计数器数组,找出出现次数最多的数字以及出现次数。 6. 如果有多个数字出现次数相同,将它们都记录下来。 7. 输出出现次数最多的数字以及出现次数。 算法实现: 下面给出该算法的Python实现代码:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值