Вопрос задан 02.03.2025 в 07:36. Предмет Информатика. Спрашивает Гапеева Снежана.

На вход программе подается последовательность чисел от 1 до 9, заканчивающаяся нулем. Всего будет введено не более 100000 чисел. Подсчитайте в этой последовательности количество единиц, количество двоек, количество троек и т. д. и выдайте результат. В выходных данных всегда должно быть 9 чисел.
ВХОДНЫЕ ДАННЫЕ

Дана последовательность цифр от 1 до 9, заканчивающаяся нулем.
ВЫХОДНЫЕ ДАННЫЕ

Выведите через пробел количество единиц, двоек, …, девяток в этой последовательности.

Перейти к ответам

Ответы на вопрос

Отвечает Barbq-Junior Андрюха.

Для решения задачи подсчета количества каждого числа от 1 до 9 в последовательности, заканчивающейся нулем, нужно выполнить следующие шаги:

Алгоритм решения

  1. Считать последовательность чисел. Последовательность будет заканчиваться нулем, но сам ноль учитывать не нужно.
  2. Инициализировать счетчики. Для подсчета чисел от 1 до 9 создаем массив или список из 9 элементов, каждый из которых изначально равен нулю.
  3. Обойти последовательность. Для каждого числа из последовательности (кроме нуля):
    • Если число находится в диапазоне от 1 до 9, увеличить соответствующий счетчик.
  4. Вывести результат. После обработки всей последовательности вывести значения всех счетчиков через пробел.

Пример входных и выходных данных

Входные данные:

1 2 3 2 3 3 4 5 9 8 7 6 5 4 3 2 1 0

Выходные данные:

2 4 4 2 2 1 1 1 1

Пошаговая реализация на Python

python
# Считываем последовательность чисел sequence = map(int, input().split())

# Инициализируем счетчики для чисел от 1 до 9 counters = [0] * 9

# Обрабатываем последовательность for num in sequence: if num == 0: # Завершаем обработку при встрече нуля break if 1 <= num <= 9: # Увеличиваем соответствующий счетчик counters[num - 1] += 1

# Выводим результат print(" ".join(map(str, counters)))

Объяснение кода

  1. Считывание входных данных. Функция map(int, input().split()) позволяет преобразовать введенную строку в последовательность целых чисел.
  2. Инициализация счетчиков. Создаем список counters длиной 9, чтобы хранить количество каждого числа от 1 до 9.
  3. Обработка чисел. Цикл перебирает каждое число в последовательности:
    • Если число равно нулю, выход из цикла (break).
    • Если число от 1 до 9, увеличивается соответствующий элемент списка counters (индекс определяется как num - 1).
  4. Вывод результата. Список counters преобразуется в строку, где числа разделены пробелами, и выводится.

Особенности

  • Программа корректно работает для длинной последовательности (до 100000 чисел), так как использует эффективный метод подсчета и минимальное количество памяти.
  • Ноль в последовательности используется только для завершения ввода и не учитывается в подсчетах.

Этот подход надежен и позволяет обработать даже большие объемы данных.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос