Предмет: Информатика,
автор: Thour
Дан массив N(N<=100) натуральных чисел, не превышающих 999. Расположить их по возрастанию суммы их цифр. Если у двух различных чисел суммы цифр совпадают, то первыми из них должно идти меньшее число. Срочно!!!
Ответы
Автор ответа:
0
// 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
// Внимание! Если программа не работает, обновите версию!
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
Пример:Входные данные- 5(кол-во чисел), 13,4,79,55,90(сами числа) Выходные данные - 4,13,90,55,79
Автор ответа:
0
Что значит "по-другому" ?
Автор ответа:
0
Руками вводить хотите? Так надо было об этом писать в условии.
Автор ответа:
0
Замените строку с var a;= на строку var a:=ReadArrInteger('Вводите данные:',ReadInteger('n='));
Похожие вопросы
Предмет: Геометрия,
автор: Iamnorman
Предмет: Литература,
автор: PROSTOXZKAKOYNIK
Предмет: Биология,
автор: wlskk123
Предмет: Математика,
автор: abmaevaangelin
Предмет: Физика,
автор: Аноним