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

Задача

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

Пояснение к задаче и алгоритм решения

  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.

Пример(ы) выполнения программы на языке Pascal

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

Исходный код на языке программирования C

#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 имеет максимальную сумму цифр: %d\n",max_m,max_s);
}

Пример(ы) выполнения программы на языке C

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)

Пример(ы) выполнения программы на языке Python

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

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

Пример(ы) выполнения программы на языке Basic

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

Тема

Вложенные циклы

Уровень сложности

Средний

Дата публикации