Как найти максимальную сумму цифр числа питон

def func(arr):     
    sum = 0
    result = []
    for i in range(len(arr)):
        sum = 0
        arr[i] = list(str(arr[i]))
        for j in range(len(arr[i])):
            sum += int(arr[i][j])
        result.append(sum)
        x = result.index(sum)
        print(x)
    
array = [120, 125, 365, 450]
print(func(array))

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

До append все хорошо, но с индексом и нахождением числа проблема…

Jack_oS's user avatar

Jack_oS

12.5k7 золотых знаков18 серебряных знаков48 бронзовых знаков

задан 22 апр 2021 в 10:25

Дарья Лазарева's user avatar

4

Находим максимальный элемент массива array по ключу:

  • Из числа 365 (к примеру) делаем список ['3', '6', '5'].
  • Находим сумму элементов списка sum(...), при этом переводя их в map(int, ...).
array = [120, 125, 365, 450]
print(max(array, key=lambda x: sum(map(int, str(x)))))

ответ дан 22 апр 2021 в 10:36

entithat's user avatar

entithatentithat

13.1k2 золотых знака19 серебряных знаков37 бронзовых знаков

3

В дополнение к ответу от entithat.
Больше текста, но без зубодробительности однострочников пайтона ;)

# функция для определения суммы чисел
def sum_nums(num):
    result = 0                    # текущая сумма - 0
    for ch in str(num):           # для каждого элемента в числе, переведенном в строку:
        result += int(ch)         # добавить инт элемента к результату
    return result

# основная ф-ция
def max_sum_num(arr):
    max_num = arr[0]              # первый в списке - текущий максимальный
    max_sum = sum_nums(arr[0])    # то же для суммы
    for el in arr[1:]:            # для каждого элемента, начиная со второго:
        el_sum = sum_nums(el)     # вычислить сумму
        if el_sum > max_sum:      # если больше текущей:
            max_num = el          # обновить максимальное число
            max_sum = el_sum      # обновить максимальную сумму
    return max_num
array = [120,125,365,450]
max_sum_num(array)

ответ дан 22 апр 2021 в 10:58

Jack_oS's user avatar

Jack_oSJack_oS

12.5k7 золотых знаков18 серебряных знаков48 бронзовых знаков

2

Как найти наибольшее по сумме чисел?

Вводится N чисел.
Среди натуральных чисел, которые были введены,
найдите наибольшее по сумме цифр. Выведите на экран это число и сумму его цифр.
Сделал так, но что-то не особо рабочий….

number_of_digits = int(input('Введите количество чисел: '))
max_m = 0
max_sum = 0
summ = 0

for i in range(number_of_digits):
    print('Введите число: ', end=' ')
    number = int(input())
    this_num = number
    while number > 0:
      summ += number % 10
      number //= 1
      if summ > max_sum:
        max_sum = summ
        max_num = this_num
        summ = 0
print('Число', max_num, 'имеет максимальную сумму цифр:', max_sum)<code lang="python">

</code>

Прошу помощи в решении.


  • Вопрос задан

    08 февр.

  • 450 просмотров

number //= 1
Может, всё-таки 10?

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

Пригласить эксперта

nums = [111, 99, 123]

result = max(nums, key=lambda n: sum(map(int, f'{n}')))

print(result, sum(map(int, f'{result}')))


  • Показать ещё
    Загружается…

26 мая 2023, в 19:48

1000 руб./в час

26 мая 2023, в 19:27

500 руб./за проект

26 мая 2023, в 18:34

1000 руб./за проект

Минуточку внимания

Оглавление:

  • 1 Задача — Найти число с максимальной суммой цифр
    — программирование на Pascal, Си, Кумир, Basic-256, Python

    • 1.1 Pascal
    • 1.2 Язык Си
    • 1.3 Python
    • 1.4 КуМир
    • 1.5 Basic-256

Задача — Найти число с максимальной суммой цифр
— программирование на Pascal, Си, Кумир, Basic-256, Python

Среди натуральных чисел, которые были введены, найти наибольшее по сумме цифр. Вывести на экран это число и сумму его цифр.

  1. Создать переменные для хранения самой большой суммы цифр (max_s) и числа, которое они составляют (max_m). Присвоить им нули.
  2. Пока не будет введен 0,
    1. найти сумму цифр числа.
    2. Если сумма цифр больше сохраненного ранее значения в max_s, то сохранить в ней данную сумму. Присвоить max_m текущее «исследуемое» число.
  3. После того, как ввод чисел будет закончен, вывести на экран значения max_s и max_m.

Pascal

var n,m,s,max_s,max_m: integer;
begin
readln(n);
max_s := 0;
max_m := 0;
while n <> 0 do begin
m := n;
s := 0;
while n > 0 do begin
s := s + n mod 10;
n := n div 10;
end;
if s > max_s then begin
max_s := s;
max_m := m;
end;
readln(n);
end;
writeln(‘Число ‘, max_m,’ имеет максимальную сумму цифр: ‘, max_s);
end. 3781
3902
2850
7121
8090
0
Число 3781 имеет максимальную сумму цифр: 19

Язык Си

#include <stdio.h>

main() {
int n,m,s,max_m,max_s;
scanf(«%d»,&n);
max_m = 0;
max_s = 0;
while (n != 0) {
m = n;
s = 0;
while (n > 0) {
s += n%10;
n = n/10;
}
if (s > max_s) {
max_s = s;
max_m = m;
}
scanf(«%d»,&n);
}
printf(«Число %d имеет максимальную сумму цифр: %dn»,max_m,max_s);
} 20199
97483
95732
87737
0
Число 87737 имеет максимальную сумму цифр: 32

Python

n = int(input())
max_s = 0
max_m = 0
while n != 0:
m = n
s = 0
while n>0:
s += n%10
n //= 10
if s > max_s:
max_s = s
max_m = m
n = int(input())
print(‘Число’,max_m,’имеет максимальную сумму цифр:’, max_s) 789
5076
12077
0
Число 789 имеет максимальную сумму цифр: 24

КуМир

алг макс сумма цифр
нач
цел n,m,s,max_s,max_m
ввод n
max_s := 0
max_m := 0
нц пока n<>0
m := n
s := 0
нц пока n>0
s := s + mod(n,10)
n := div(n,10)
кц
если s > max_s то
max_s := s
max_m := m
все
ввод n
кц
вывод «Число «,max_m,» имеет максимальную сумму цифр: «,max_s
кон 578
45
345
9033
0
Число 578 имеет максимальную сумму цифр: 20

Basic-256

input n
max_s = 0
max_m = 0
while n <> 0
m = n
s = 0
while n > 0
s = s + n%10
n = n10
endwhile
if s > max_s then
max_s = s
max_m = m
endif
input n
endwhile
print «Число » + max_m + » имеет максимальную сумму цифр: » + max_s 283713
834722
297447
237447
377462
917442
824743
0
Число 297447 имеет максимальную сумму цифр: 33

Did you find apk for android? You can find new Free Android Games and apps.

0 / 0 / 0

Регистрация: 08.04.2019

Сообщений: 1

1

Найти число с максимальной суммой цифр в списке

08.04.2019, 22:22. Показов 6781. Ответов 1


Студворк — интернет-сервис помощи студентам

Здравствуйте, хотел бы попросить о помощи. Я— новичек в Python. Хотел бы узнать как можно найти число с максимальной суммой цифр в списке.
Есть список, в нем находятся числа. Ничего более



0



m0nte-cr1st0

1040 / 575 / 242

Регистрация: 15.01.2019

Сообщений: 2,178

Записей в блоге: 1

09.04.2019, 01:48

2

Viktor1488,

Python
1
2
3
4
5
6
7
8
9
10
11
l = [1, 2312, 94, 124, 46]
 
max = sum(map(int, list(str(l[0]))))
numb = l[0]
for i, k in enumerate(l[1:]):
  max_ = sum(map(int, list(str(k))))
  if max < max_:
    max = max_
    numb = k
    
print(numb)



0



Найти число с максимальной суммой цифр

Просмотров 8.6к. Обновлено 15 октября 2021

Среди натуральных чисел, которые были введены, найти наибольшее по сумме цифр. Вывести на экран это число и сумму его цифр.

  1. Создать переменные для хранения самой большой суммы цифр (max_s) и числа, которое они составляют (max_m). Присвоить им нули.
  2. Пока не будет введен 0,
    1. найти сумму цифр числа.
    2. Если сумма цифр больше сохраненного ранее значения в max_s, то сохранить в ней данную сумму. Присвоить max_m текущее «исследуемое» число.
  3. После того, как ввод чисел будет закончен, вывести на экран значения max_s и max_m.

Pascal


var n,m,s,max_s,max_m: integer;
begin
readln(n);
max_s := 0;
max_m := 0;
while n <> 0 do begin
m := n;
s := 0;
while n > 0 do begin
s := s + n mod 10;
n := n div 10;
end;
if s > max_s then begin
max_s := s;
max_m := m;
end;
readln(n);
end;
writeln('Число ', max_m,' имеет максимальную сумму цифр: ', max_s);
end.



3781
3902
2850
7121
8090
0
Число 3781 имеет максимальную сумму цифр: 19

Язык Си


#include

main() {
int n,m,s,max_m,max_s;
scanf("%d",&n);
max_m = 0;
max_s = 0;
while (n != 0) {
m = n;
s = 0;
while (n > 0) {
s += n%10;
n = n/10;
}
if (s > max_s) {
max_s = s;
max_m = m;
}
scanf("%d",&n);
}
printf("Число %d имеет максимальную сумму цифр: %dn",max_m,max_s);
}



20199
97483
95732
87737
0
Число 87737 имеет максимальную сумму цифр: 32

Python


n = int(input())
max_s = 0
max_m = 0
while n != 0:
m = n
s = 0
while n>0:
s += n%10
n //= 10
if s > max_s:
max_s = s
max_m = m
n = int(input())
print('Число',max_m,'имеет максимальную сумму цифр:', max_s)



789
5076
12077
0
Число 789 имеет максимальную сумму цифр: 24

КуМир


алг макс сумма цифр
нач
цел n,m,s,max_s,max_m
ввод n
max_s := 0
max_m := 0
нц пока n<>0
m := n
s := 0
нц пока n>0
s := s + mod(n,10)
n := div(n,10)
кц
если s > max_s то
max_s := s
max_m := m
все
ввод n
кц
вывод "Число ",max_m," имеет максимальную сумму цифр: ",max_s
кон



578
45
345
9033
0
Число 578 имеет максимальную сумму цифр: 20

Basic-256


input n
max_s = 0
max_m = 0
while n <> 0
m = n
s = 0
while n > 0
s = s + n%10
n = n10
endwhile
if s > max_s then
max_s = s
max_m = m
endif
input n
endwhile
print "Число " + max_m + " имеет максимальную сумму цифр: " + max_s



283713
834722
297447
237447
377462
917442
824743
0
Число 297447 имеет максимальную сумму цифр: 33

Понравилась статья? Поделить с друзьями:
  • Как найти дду в домклик
  • Как найти управляющего инвестициями
  • Как исправить ошибку opengl 1282
  • Как составить рассказ на тему моя любимая книга
  • Найти как изготовляют золото