В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
adelinapak
adelinapak
04.02.2022 08:41 •  Информатика

Дан массив n(n< =100) натуральных чисел, не превышающих 999. расположить их по возрастанию суммы их цифр. если у двух различных чисел суммы цифр , то первыми из них должно идти меньшее число.

Ответ:
alisher0901
alisher0901
16.08.2020 10:55
// PascalABC.NET 3.3, сборка 1542 от 05.10.2017
// Внимание! Если программа не работает, обновите версию!

function SumD(n:integer):integer;
begin
  Result:=0;
  while n>0 do begin
    Result+=n mod 10;
    n:=n div 10
    end
end;

begin
  var a:=ArrRandom(ReadInteger('n='),1,999); a.Println;
  a:=a.OrderBy(x->x).OrderBy(x->SumD(x)).ToArray;
  a.Println;
end.

Пример
n= 30
632 411 647 143 933 205 451 16 213 479 106 939 299 315 566 428 306 758 495 927 101 301 599 969 368 180 24 124 739 635
101 301 24 213 411 16 106 124 205 143 180 306 315 451 632 428 635 933 368 566 647 495 927 739 299 479 758 939 599 969
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?