Есть слово из 8 букв «КАМЕНЩИК», его буквы нумеруются, начиная с 1. Некоторая программа меняет местами буквы слова следующим образом: буква на 1 месте занимает 2 место, буква на 2 месте занимает 7 место, буква на 3 месте занимает 6 место, буква на 4 месте занимает 5 место, буква на 5 месте занимает 3 место, буква на 6 месте занимает 4 место, буква на 7 месте занимает 1 место, наконец, 8 буква остаётся на месте , т. е. после выполнения программы слово станет таким «ИКНЩЕМАК». Предположим, что мы выполнили программу для слова «КАМЕНЩИК» ровно n раз, но хотя бы один (n>0). Для какого минимального n мы получим слово в первоначальном виде? В ответ запишите число.
Кол-во перестановок = 12
Объяснение:
Изначальное - 12345678
Нужно узнать кол-во перестановок, после которых число превратится в изначальное.
71564328 (Кол-во перестановок - 1)
27436518 (Кол-во перестановок - 2)
12653478 (Кол-во перестановок - 3)
71345628 (Кол-во перестановок - 4)
27564318 (Кол-во перестановок - 5)
12436578 (Кол-во перестановок - 6)
71653428 (Кол-во перестановок - 7)
27345618 (Кол-во перестановок - 8)
12564378 (Кол-во перестановок - 9)
71436528 (Кол-во перестановок - 10)
27653418 (Кол-во перестановок - 11)
12345678 (Кол-во перестановок - 12)
Программа Pascal:
var
a,b:array[1..8] of integer;
n,s,t:integer;
begin
n:=1;
for var i1:=1 to 8 do begin
a[i1]:=i1;
end;
writeln('Изначальное - ',a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
while t=0 do begin
s:=s+1;
b[2]:=a[1];
b[7]:=a[2];
b[6]:=a[3];
b[5]:=a[4];
b[3]:=a[5];
b[4]:=a[6];
b[1]:=a[7];
b[8]:=a[8];
for var i2:=1 to 8 do a[i2]:=b[i2];
write(a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8]);
writeln(' (Кол-во перестановок - ',s,')');
if (a[1]=1) and (a[2]=2) and (a[3]=3) and (a[4]=4) and (a[5]=5) and (a[6]=6) and (a[7]=7) and (a[8]=8) then t:=1;
end;
end.