** Pascal напишите пожалуйста.

0 голосов
40 просмотров

На Pascal напишите пожалуйста.


image

Информатика (23 баллов) | 40 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

{1}

//PascalABC.Net 3.1 сборка 1200

begin
    var n := Abs(ReadInteger());
    var ns := new List();
    while n > 0 do
    begin
        ns.Add(n mod 10);
        n := n div 10;
    end;
    ns.Sort();
    writeln(ns.Pairwise((x, y)-> x = y).Any(z -> z = true) ? 'YES' : 'NO');
end.

{2}

//PascalABC.Net 3.1 сборка 1200

var
    a, b, c: integer;

begin
    readln(a, b, c);
    a := b - a;
    b := c - b;
    writeln(max(a, b) mod min(a, b));
end.

{3}
//PascalABC.Net 3.1 сборка 1200

function Shift(number: integer): integer;
begin
    number := abs(number);
    var s := number.ToString();
    s := s.Substring(1) + s.Substring(0, 1);
    if s.Substring(0, 1) = '0' then {костыль, так как число с ведущим нулем не будет самым большим}
        s := s.Substring(1) + s.Substring(0, 1);
    Shift := StrToInt(s);
end;

begin
    var a := ReadInteger();
    var max := a;
    for var i := 1 to a.ToString().Length do
    begin
        a := Shift(a);
        if max < a then max := a;
        writeln(a);
    end;
    writeln('max = ', max);
end.

(55.0k баллов)
0

Надо на Pascal Free

0

язык не уточнялся, если язык не уточнялся, то можно писать на любом подходящем. На фри паскале будет нудно и долго.

0

И вообще олимпиадные задачи нельзя выкладывать