小C拥有两个数列,为了迎接未来的考试,他想要在这两个数列中挑选出一些幸运数字。查找古籍后他发现,所谓幸运数字必须满足两个条件:1)这个数字在两个数列中都出现过;2)这个数字的各位数字之和必须是偶数。但是小C最近忙于准备考试,于是他想找你帮忙编程找到所有幸运数字,使他顺利通过考试。
时间: 2024-12-23 15:20:16 浏览: 6
了解,小C需要找出同时出现在两个数列中并且各位数字之和为偶数的数字。这是一个涉及到集合(Set)操作和数学逻辑的问题。首先,你需要将每个数列转换成一个Set,以便快速查找元素是否存在。然后遍历第一个Set中的每个数字,检查它是否也在第二个Set中,并计算其各位数字之和。如果和是偶数,就把它添加到结果列表里。
这里是一个简单的Python示例:
```python
def find_lucky_numbers(list1, list2):
# 转换为集合并去重
set1 = set(map(int, list1))
set2 = set(map(int, list2))
lucky_numbers = []
for num in set1:
if num in set2 and sum(int(digit) for digit in str(num)) % 2 == 0:
lucky_numbers.append(num)
return lucky_numbers
# 测试数据
list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
lucky_numbers = find_lucky_numbers(list1, list2)
print(f"小C的幸运数字有: {lucky_numbers}")
阅读全文