Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3540371
А
Аноним
27 декабря 2025 15:40 · публичный вопрос
А
Аноним

Первоклассник Петя учится складывать числа. Есть число N и N строк с неотрицательными целыми числами. Выведите выражение, которое записал Петя, — сумму элементов…

Запрос пользователя

Первоклассник Петя учится складывать числа. Есть число N и N строк с неотрицательными целыми числами. Выведите выражение, которое записал Петя, — сумму элементов последовательности. Поскольку число 0 не влияет на сумму, его записывать не надо. В списке обязательно есть хотя бы одно положительное число. Пробелов между числами и плюсами Петя не ставил.

Ответ нейросети
27 декабря 2025 15:40

Описание задачи понятное: нужно вывести выражение из чисел по порядку, но пропуская нули, и между оставшимися числами ставить знак плюс. Гарантировано, что есть хотя бы одно положительное число.

Пошаговое решение (для средней школы)

  • Вводим N — сколько чисел будет далее.
  • Считываем N чисел (они неотрицательные).
  • Берём только ненулевые числа (так как нули не вносят вклад в сумму).
  • Соединяем эти числа в одну строку через знак плюс '+'. Если осталось ровно одно число, то вывода без плюса достаточно — просто само число.
  • Выводим полученная строка. В задаче между числами не должно быть пробелов, поэтому строка должна выглядеть как например 2+3+5.

Алгоритм на простом языке:

  1. Прочитать N.
  2. Прочитать N чисел a1, a2, ..., aN.
  3. Сделать список из чисел, отличных от нуля: [a_i | a_i != 0].
  4. Объединить элементы списка в строку через '+'.
  5. Вывести результат.

Пример

  • Ввод: 4 0 2 0 3
  • После обработки остаются 2 и 3, поэтому результат: 2+3

Пример 2

  • Ввод: 5 0 0 7 0 1
  • Остались 7 и 1, итог: 7+1

Код решения на Python (практическая реализация)

  • Вход читается как обычно: сначала N, затем N строк с числами.
  • Выбираем только ненулевые и соединяем через '+'.

def build_petya_expression(): import sys data = sys.stdin.read().strip().split() if not data: return n = int(data[0]) nums = list(map(int, data[1:1+n])) terms = [str(x) for x in nums if x != 0] result = "+".join(terms) print(result)

вызовите функцию в вашем окружении, если вы запускаете как скрипт

build_petya_expression()

Пояснения к коду:

  • data = sys.stdin.read().strip().split() считывает все входные данные и делит их на слова (числа), игнорируя пробелы и переносы строк.
  • n — количество чисел, далее берём ровно n чисел из данных.
  • terms — список строковых представлений только ненулевых чисел.
  • "+".join(terms) создаёт нужную строку без пробелов между числами и знаками плюса.
  • Поскольку дано условие, что хотя бы одно число положительное, результат не окажется пустым.

Если нужна реализация на другом языке (C++, Java, JavaScript) — скажите, адаптирую под выбранный вами язык.