Напишите программу, которая сортирует массив по убыванию суммы цифр числа.
Используйте функцию, которая определяет сумму цифр числа.
Python
Помогите пожалуйста составить программу на языке Python. заранее спасибо!
Держи сортировку по сумме цифр с отдельной функцией, даже с двумя. Две по цене одной.
def digititer(n):
while n != 0: yield n % 10; n //= 10
def digitsum(n): return sum(digititer(n))
arr = map(int, input("Введите элементы массива через пробел: ").split())
print(*sorted(arr, key = digitsum, reverse = True))
Пример: Введите элементы массива через пробел: 1012 873 2048 15
873 2048 15 1012
Gpt первые восемь строк очень даже хорошо сказал. А у меня возник вопрос в листах есть метод сорт. У него есть две скобочки. А если внутрь этих скобочек написать ту функцию которую вы написали, то что будет?
print(*sorted(input().split(), key = lambda x: sum(map(int, x)), reverse = True))
def digit_sum(n):
return sum(int(digit) for digit in str(n))
def selection_sort_descending_by_digit_sum(arr):
n = len(arr)
for i in range(n):
max_idx = i
for j in range(i+1, n):
if digit_sum(arr[j]) > digit_sum(arr[max_idx]):
max_idx = j
arr[i], arr[max_idx] = arr[max_idx], arr[i]
arr = [123, 456, 789, 12, 34, 56, 78, 90]
selection_sort_descending_by_digit_sum(arr)
print(arr) # [789, 456, 123, 90, 78, 56, 34, 12]
Принимай работу :Ddef sum_digits(n):
"""Функция для определения суммы цифр числа"""
s = 0
while n:
s += n % 10
n //= 10
return s
def sort_by_sum(arr):
"""Функция для сортировки массива по убыванию суммы цифр числа"""
n = len(arr)
for i in range(n):
for j in range(n-1-i):
if sum_digits(arr[j]) < sum_digits(arr[j+1]):
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
# Пример использования
arr = [123, 456, 789, 101112, 13141516]
print("Исходный массив: ", arr)
arr_sorted = sort_by_sum(arr)
print("Массив после сортировки по убыванию суммы цифр числа: ", arr_sorted)
В этом примере сначала определяется функция sum_digits, которая принимает целое число n и возвращает сумму его цифр. Затем определяется функция sort_by_sum, которая принимает массив чисел arr и сортирует его по убыванию суммы цифр каждого числа. Для сортировки используется алгоритм сортировки пузырьком.
Пример использования программы показывает, как можно вызвать функцию sort_by_sum и отсортировать исходный массив чисел. Результат сортировки выводится на экран.
"""Функция для определения суммы цифр числа"""
s = 0
while n:
s += n % 10
n //= 10
return s
def sort_by_sum(arr):
"""Функция для сортировки массива по убыванию суммы цифр числа"""
n = len(arr)
for i in range(n):
for j in range(n-1-i):
if sum_digits(arr[j]) < sum_digits(arr[j+1]):
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
# Пример использования
arr = [123, 456, 789, 101112, 13141516]
print("Исходный массив: ", arr)
arr_sorted = sort_by_sum(arr)
print("Массив после сортировки по убыванию суммы цифр числа: ", arr_sorted)
В этом примере сначала определяется функция sum_digits, которая принимает целое число n и возвращает сумму его цифр. Затем определяется функция sort_by_sum, которая принимает массив чисел arr и сортирует его по убыванию суммы цифр каждого числа. Для сортировки используется алгоритм сортировки пузырьком.
Пример использования программы показывает, как можно вызвать функцию sort_by_sum и отсортировать исходный массив чисел. Результат сортировки выводится на экран.
Похожие вопросы
- Помогите пожалуйста написать скрипт на языке Python 3
- Помогите составить программу в Python. заранее спасибо!
- Интерационный цикл Написать программу на python Заранее спасибо!
- Помогите пж, я новичок в языке python.
- Написать программу на языке Python
- Нужна помощь по PYTHON,заранее спасибо
- Помогите пожалуйста с созданием словаря в Python 3
- Помогите, пожалуйста, написать программу
- Программирование на языке python, помогите советом. Вопрос от чайника.
- Помогите пожалуйста написать 2 программы на Python