Помогите решить задачу Python
На вход программе с клавиатуры подается натуральное число N, затем вводятся N чисел, каждое с новой строки. Программа в любом порядке выводит на экран все общие цифры среди введенных чисел. Если у чисел не нашлось общих цифр, то программа выводит на экран строку «Нет общих цифр».
Пример входных данных 1:
3
123
12345
23980
Пример выходных данных 1:
2 3
Пример входных данных 2:
4
12
34
567
890
Пример выходных данных 2:
Общих цифр нет
Вот решение задачи на Python:
python
# Считываем количество чисел
n = int(input())
# Список для хранения наборов цифр каждого числа
digit_sets = []
# Считываем каждое число и преобразуем его в набор цифр
for _ in range(n):
number = input().strip()
# Создаём набор цифр из строки числа
digits = set(number)
digit_sets.append(digits)
# Находим пересечение всех наборов цифр (общие цифры)
if digit_sets:
common_digits = digit_sets[0]
for digits in digit_sets[1:]:
common_digits &= digits # Пересечение множеств
else:
common_digits = set()
# Выводим результат
if common_digits:
# Сортируем цифры для предсказуемого вывода и объединяем в строку
result = ' '.join(sorted(common_digits))
print(result)
else:
print("Нет общих цифр")
Пояснение работы программы:
Ввод количества чисел
Сначала считываем натуральное число N — количество чисел, которые будут введены.Сбор цифр каждого числа
Для каждого из N чисел:считываем число как строку (чтобы легко получить отдельные цифры);
преобразуем строку в множество (set) цифр — это автоматически убирает дубликаты внутри одного числа;
сохраняем это множество в список digit_sets.
Поиск общих цифр
Берём первое множество цифр как начальное значение common_digits.
Последовательно пересекаем его с остальными множествами через операцию &= (пересечение множеств).
В результате в common_digits останутся только цифры, присутствующие во всех числах.
Вывод результата
Если common_digits не пустое, сортируем цифры (для упорядоченного вывода) и выводим их через пробел.
Если общих цифр нет, выводим фразу «Нет общих цифр».
Примеры работы:
Пример 1:
Вход:
3
123
12345
23980
Процесс:
digit_sets = [{'1','2','3'}, {'1','2','3','4','5'}, {'2','3','9','8','0'}]
Пересечение: {'2','3'}
Выход:
2 3
Пример 2:
Вход:
4
12
34
567
890
Процесс:
digit_sets = [{'1','2'}, {'3','4'}, {'5','6','7'}, {'8','9','0'}]
Пересечение пусто
Выход:
Нет общих цифрfrom functools import reduce
n=int(input('N='))
res=reduce(lambda x,y: x & set(y), [list(input('x['+str(i)+']='))
for i in range(n) ],set(list('0123456789')))
print(('нет общих цифр',res)[len(res)>0])ой я случайно написал решения на джава скрипт, но зато ты теперь видешь разницу в длине между этими 2умя языками програмирования
спс.бо
Начинай, а если появятся вопросы, задавай.
Пошёл нафиг лошара, я в комп играю а ты уроки 🤣