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
12.5k7 золотых знаков18 серебряных знаков48 бронзовых знаков
задан 22 апр 2021 в 10:25
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
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_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
Среди натуральных чисел, которые были введены, найти наибольшее по сумме цифр. Вывести на экран это число и сумму его цифр.
- Создать переменные для хранения самой большой суммы цифр (max_s) и числа, которое они составляют (max_m). Присвоить им нули.
- Пока не будет введен 0,
- найти сумму цифр числа.
- Если сумма цифр больше сохраненного ранее значения в max_s, то сохранить в ней данную сумму. Присвоить max_m текущее «исследуемое» число.
- После того, как ввод чисел будет закончен, вывести на экран значения 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,
0 |
Найти число с максимальной суммой цифр
Просмотров 8.6к. Обновлено 15 октября 2021
Среди натуральных чисел, которые были введены, найти наибольшее по сумме цифр. Вывести на экран это число и сумму его цифр.
- Создать переменные для хранения самой большой суммы цифр (max_s) и числа, которое они составляют (max_m). Присвоить им нули.
- Пока не будет введен 0,
- найти сумму цифр числа.
- Если сумма цифр больше сохраненного ранее значения в max_s, то сохранить в ней данную сумму. Присвоить max_m текущее «исследуемое» число.
- После того, как ввод чисел будет закончен, вывести на экран значения 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
Язык Си
#includemain() {
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