Вопрос задан 27.10.2026 в 20:03. Предмет Информатика. Спрашивает Гречушкина Маша.

Дано n целых положительных чисел. Требуется определить, в каком из них самая большая сумма цифр, и вывести номер этого числа.
Формат входных данных:
Целое положительное число 1 < n < 20;
n целых положительных чисел 0 < numN < 2 147 483 648.

Формат выходных данных:
Номер числа с наибольшей суммой цифр. Если таких чисел несколько, выведите номер первого из них.

Входные данные:
6
38275955
1324667620
1270258744
846055699
679263851
18099845
Выходные данные:
4
Python

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

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

Отвечает Калашников Захар.

Решение задачи на Python

Необходимо найти число с наибольшей суммой цифр среди n положительных целых чисел и вывести его порядковый номер (нумерация начинается с 1).

Если несколько чисел имеют одинаковую максимальную сумму цифр, нужно вывести номер первого из них.

Код на Python

Python

n = int(input())
max_sum = -1
answer = 0

for i in range(1, n + 1):
num = int(input())
digit_sum = sum(int(digit) for digit in str(num))

if digit_sum > max_sum:
max_sum = digit_sum
answer = i

print(answer)

Объяснение решения

  1. Считываем количество чисел n.

  2. Создаём переменную max_sum, в которой будем хранить максимальную найденную сумму цифр.

  3. Создаём переменную answer, которая хранит номер числа с максимальной суммой цифр.

  4. Для каждого числа:

    • Преобразуем его в строку с помощью str(num).

    • Находим сумму цифр с помощью sum(int(digit) for digit in str(num)).

    • Если полученная сумма больше max_sum, обновляем максимальную сумму и запоминаем номер текущего числа.

  5. Выводим answer.

Почему используется >, а не >=?

Потому что по условию, если несколько чисел имеют одинаковую максимальную сумму цифр, необходимо вывести номер первого из них. При использовании > номер не изменится, если встретится число с такой же суммой цифр.

Пример

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

Обычный текст
6 38275955 1324667620 1270258744 846055699 679263851 18099845

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

Обычный текст
4

Сложность алгоритма

  • Время: O(n × k), где n — количество чисел, а k — максимальное количество цифр в числе.

  • Память: O(k) для преобразования очередного числа в строку.

Поскольку числа не превышают 2 147 483 647, каждое содержит не более 10 цифр. Поэтому алгоритм работает очень быстро и полностью подходит под ограничения задачи.

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

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

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

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