Simbireva
?>

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

Информатика

Ответы

Щуплова Александр
// 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
kovansckaya201313

type

  base = record

     id: integer;

     ball: integer;

  end;

var

  t: text;

  a: array of array of integer;

  n: integer;

  st, tmp: string;

  err: integer := 1;

  database: base;

begin

  readln(n);

  setlength(a, n);

  for i: integer := low(a) to high(a) do

     setlength(a[i], 2);

  for i: integer := low(a) to high(a) do

  begin

     readln(st);

     tmp := st;

     delete(tmp, pos(' ', tmp, err), tmp.Length - pos(' ', tmp, err) + 1);

     database.id := strtoint(tmp);

     tmp := st;

     delete(tmp, 1, pos(' ', tmp, err));

     database.ball := strtoint(tmp);

     a[i, 0] := database.id;

     a[i, 1] := database.ball;

  end;

  var j: integer := 0;

  assign(t, 'output.txt');

  rewrite(t);

  while (j <= high(a)) do

  begin

     if (j + 1 < high(a)) and (a[j, 1] = a[j + 1, 1]) then

        if (a[j, 0] < a[j + 1, 0]) then begin

           write(t, inttostr(a[j, 0])); write(t, ' '); write(t, inttostr(a[j, 1])); writeln(t,'');

           write(t, inttostr(a[j + 1, 0])); write(t, ' '); write(t, inttostr(a[j + 1, 1])); writeln(t,'');

        end else begin

           write(t, inttostr(a[j + 1, 0])); write(t, ' '); write(t, inttostr(a[j + 1, 1])); writeln(t,'');

           write(t, inttostr(a[j, 0])); write(t, ' '); write(t, inttostr(a[j, 1])); writeln(t,'');

        end;

     if (j+1=n) then

        write(t, inttostr(a[j, 0])); write(t, ' '); write(t, inttostr(a[j, 1])); writeln(t,'');

     inc(j, 2);

  end;

  close(t);

end.

SaraevaTretyakov1941

Объяснение:

В 1945 году работала первая в СССР аналоговая машина. До войны же были начаты исследования и разработки быстродействующих триггеров — основных элементов цифровых ЭВМ.

29 июня 1948 года Председатель Совета Министров СССР И. В. Сталин подписал постановление, в соответствии с которым создавался Институт точной механики и вычислительной техники.

В 1948 году под началом доктора физико-математических наук С. А. Лебедева в Киеве начинаются работы по созданию МЭСМ (малой электронной счетной машины). В октябре 1951 года она вступила в эксплуатацию.

В конце 1948 года сотрудники Энергетического института им. Крижижановского И. С. Брук и Б. И. Рамеев получают авторское свидетельствона ЭВМ с общей шиной, а в 1950—1951 гг. создают её. В этой машине впервые в мире вместо электронных ламп используются полупроводниковые (купроксные) диоды. С 1948 г. Брук вёл работы по электронным ЦВМ и управлению с применением средств вычислительной техники.

В начале 1949 года в Москве на базе завода САМ были созданы СКБ-245 и НИИ Счетмаш. Создаются заводы «Счётмаш» в Курске, Пензе, Кишинёве.

Подробнее - на -

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

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

Популярные вопросы в разделе

Хабарьева Андрей1056
Kolokolnikova DANIIL179
Джамал1009
elmiro4ka868617
inikonovich
BrezhnevaKoidula
shef3009
samoilovcoc
grishin
Антонович937
espectr-m
Veronika343
Tuzov
nikitavertiev98400
MikhailSvetlana
▲