Переходите от одного квадрата к другому, выбирая при этом ту цифру, которая меньше – таким образом вы ищите кратчайший путь.
Delphi 2010
procedure Zadanie1(A: Integer; B: Integer);
Var
s: String;
i: Integer;
begin
s := '';
for i := A to B do
s := s + ' ' + IntToStr(i);
s := Trim(s) + #13#10 + 'Всего чисел: ' + IntToStr(B-A+1);
ShowMessage(s);
end;
procedure Zadanie2(A: Integer; B: Integer);
Var
s: String;
i: Integer;
begin
s := '';
for i := B-1 downto A+1 do
s := s + ' ' + IntToStr(i);
s := Trim(s) + #13#10 + 'Всего чисел: ' + IntToStr(B-A-1);
ShowMessage(s);
end;
procedure Zadanie3(A: Integer; B: Integer);
Var
s: Integer;
i: Integer;
begin
s := 0;
for i := A to B do
s := s + i;
ShowMessage('Сумма чисел = ' + IntToStr(s));
end;
procedure Zadanie4(A: Integer; B: Integer);
Var
p: Integer;
i: Integer;
begin
p := 1;
for i := A to B do
p := p * i;
ShowMessage('Произведение чисел = ' + IntToStr(p));
end;
procedure Zadanie5(A: Integer; B: Integer);
Var
s: Integer;
i: Integer;
begin
s := 0;
for i := A to B do
s := s + sqr(i);
ShowMessage('Сумма квадратов = ' + IntToStr(s));
end;
type
Data = record
Year: 1..2100;
Month: 1..12;
Day: 1..31;
end;
begin
writeln(sizeof(Data) * 8, ' бит'); {sizeof(Data) показывает размер типа Data в байтах
program n_1;
uses crt;
var
n: longint;
k: integer;
function Sym(n: integer): char;
begin
case n of
0..9: Sym := chr(48 + n);
10..36: Sym := chr(55 + n);
end;
end;
function funct(n: longint; k: integer): string;
var
st: string;
begin
st := '';
if n = 0 then st := '0' else
begin
while n >= 1 do
begin
st := Sym(n mod k) + st;
n := n div k;
end;
end;
DecToX := st;
end;
begin
readln(n);
repeat
readln(k);
until (2 <= k) and (k <= 36);
writeln(funct(n, k));
end.