function nums(a: integer): System.uint64; //очень_длинное_число, 10 цифр же, кортеж не стал лепить, не школьный это тип, а массивы не очень-то сравниваться любят var num: array [0..9] of byte; begin foreach c: char in a.ToString() do num[StrToInt(c)] += 1; result := System.uint64.Parse( String.Concat(num[0], num[1], num[2], num[3], num[4], num[5], num[6], num[7], num[8], num[9])); end;
var a: array [1..5] of System.uint64; i, j: byte;
begin for i := 1 to 5 do readln(a[i]); for i := 1 to 4 do for j := i + 1 to 5 do if (nums(a[i]) = nums(a[j])) then writeln(a[i], ' <-> ', a[j]); end.
P.S. Начал было перегружать оператор сравнивания, но головная боль лишняя, да и тоже не школьное это
var
num: array [0..9] of byte;
begin
foreach c: char in a.ToString() do
num[StrToInt(c)] += 1;
result := System.uint64.Parse(
String.Concat(num[0], num[1], num[2], num[3], num[4],
num[5], num[6], num[7], num[8], num[9]));
end;
var
a: array [1..5] of System.uint64;
i, j: byte;
begin
for i := 1 to 5 do
readln(a[i]);
for i := 1 to 4 do
for j := i + 1 to 5 do
if (nums(a[i]) = nums(a[j])) then
writeln(a[i], ' <-> ', a[j]);
end.
P.S. Начал было перегружать оператор сравнивания, но головная боль лишняя, да и тоже не школьное это