Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Наибольшая сумма цифр. PYTHON И посоветуйте хорошую книгу по обучению пжлста и может видосики?

Green Ученик (100), открыт 6 дней назад
Что нужно сделать
Пользователь вводит N чисел. Среди натуральных чисел, которые он указал, найдите наибольшее по сумме цифр. Выведите на экран это число и сумму его цифр.

Пример
Введите количество чисел: 3
Введите число: 5
Введите число: 98
Введите число: 453

Число 98 имеет максимальную сумму цифр: 17

Что оценивается
Результат вывода соответствует условию.
Вывод содержит описание результата (выведенные числа сопровождаются текстовым описанием).

Я тут что написал но не очень корректно работает
one_n = int(input('Введите количество чисел: '))
chislo = 0
summ = 0

for _ in range (one_n):
two_n = int(input('Ввелите число: '))
while two_n > chislo :
chislo = two_n
summ = ( chislo % 10) + ( chislo // 10)
print('Число:', chislo , ', имеет максимальную сумму цифр:', summ)
4 ответа
Кирилл Дамьян Дамьян Ученик (110) 6 дней назад
# Функция для вычисления суммы цифр числа
def sum_of_digits(number):
return sum(int(digit) for digit in str(number))

# Основная программа
def main():
# Ввод количества чисел
N = int(input("Введите количество чисел: "))

max_sum = -1 # Инициализация максимальной суммы цифр
max_number = None # Число с максимальной суммой цифр

for _ in range(N):
number = int(input("Введите число: "))

# Проверка, является ли число натуральным
if number > 0:
current_sum = sum_of_digits(number)

# Обновление максимума
if current_sum > max_sum:
max_sum = current_sum
max_number = number

# Вывод результата
if max_number is not None:
print(f"Число {max_number} имеет максимальную сумму цифр: {max_sum}")
else:
print("Натуральных чисел не было введено.")

# Запуск программы
main()



Как работает программа:
Функция sum_of_digits :
Преобразует число в строку, чтобы получить доступ к каждому символу (цифре).
Преобразует каждый символ обратно в целое число и суммирует их.
Основная программа :
Запрашивает у пользователя количество чисел N.
В цикле запрашивает N чисел, проверяет, являются ли они натуральными (>0), и вычисляет сумму их цифр.
Если сумма цифр текущего числа больше текущего максимума, обновляет значения max_sum и max_number.
Обработка результата :
Если среди введенных чисел были натуральные, выводит число с максимальной суммой цифр и эту сумму.
Если натуральных чисел не было, выводит соответствующее сообщение.
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (271147) 6 дней назад
Небольшая библиотека там: https://local-disc.firebaseapp.com/menu/articles/HashRouter.html#/books

Остальное сам найдешь, Phyton — самый популярный ЯП в мире и поэтому книг тонны..
Ксения Райт Высший разум (104234) 6 дней назад
Небольшая правка и всё работает как надо:
 one_n = int(input('Введите количество чисел: '))   
chislomax, summax = 0, 0
for _ in range (one_n):
two_n = int(input('Ввелите число: '))
chislo, summ = two_n, 0
while two_n: summ += two_n % 10; two_n //= 10
if summ > summax: summax = summ; chislomax = chislo
print('Число:', chislomax , ', имеет максимальную сумму цифр:', summax)
Только максимальная сумма цифр может быть у нескольких натуральных чисел, а не у одного единственного (например, у самого первого из таких введённых чисел).

А хороший план обучения - это про "видосики" сразу же забыть, а начать серьёзное изучение Py₃ по классическим книгам Саммерфилда, Бизли, Лутца, Рамальо и иже с ними (это всё литература общего характера, но есть ещё, разумеется, описания отдельных библиотек (коим, кстати сказать, несть числа !), а также других инструментальных средств - например, фреймворка Jango или способов и приёмов сбора информации в Сети с её сопутствующим анализом; и дальше по темам - научные и инженерные расчёты, BigData, AI, etc., то есть всё то, для чего вообще Python предназначен и где применяется). И надо не только в процессе обучения решать разного рода практические задачи, но и создавать свои достаточно серьёзные работающие проекты - это совершенно обязательно!
S.H.I. Оракул (71319) 6 дней назад
 #!/usr/bin/env python3 
def sum_of_digits(num):
return sum(int(digit) for digit in str(num))

# Запрос количества чисел
n = int(input("Введите количество чисел: "))

max_digit_sum = -1 # Инициализируем минимальным значением
number_with_max_sum = 0 # Переменная для хранения числа с максимальной суммой цифр

for i in range(n):
current_num = int(input("Введите число: "))
current_sum = sum_of_digits(current_num)

# Если текущая сумма цифр больше найденной ранее, обновляем результат.
# Если суммы равны, можно задать дополнительное условие, например, выбираем большее число.
if current_sum > max_digit_sum or (current_sum == max_digit_sum and current_num > number_with_max_sum):
max_digit_sum = current_sum
number_with_max_sum = current_num

print(f"Число {number_with_max_sum} имеет максимальную сумму цифр: {max_digit_sum}")
Рекомендую канал Corey Schafer на YouTube – у него много понятных и подробных видео по Python.
Похожие вопросы