procedure hase(var k,n,max:integer); //сама последовательность begin if not(odd(n)) then n:=n div 2 else n:=n*3+1; //условие про чётность writeln(n); //вывод нового члена последовательности inc(k); //увеличение значения счётчика шагов if max<n then max:=n; //поиск вершины end;
procedure start(var k,n,max:integer); //название процедуры намекает begin readln(n); k:=0; writeln('Seq:'); max:=integer.MinValue; while n<>1 do hase(k,n,max); writeln('Шаги:',k); writeln('Вершина:',max); end; begin start(k,n,max); end. Пример ввода: 6 Пример вывода: Seq: 3 10 5 16 8 4 2 1 Шаги:8 Вершина:16
Gaf gam gar gaw gaq Еще 15 вариантов с гласными o,e,u (по 5 вариантов с каждой гласной) Теперь на первое место ставим остальные согласные и по тому же алгоритму, получается 120 логинов длинной 3 символа fag+еще 19 вариантов с буквы f mag+еще 19 вариантов с буквы m и так еще с 3 согласными Теперь берем каждый из 120 вариантов, так как гласные и согласные чередуются, то на четвертом месте может стоять только гласная. Получается gafa gafo gafe gafu К каждому из 120 вариантов из 3 символов можно добавить одну из 4 гласные. Получается еще плюс 480 логинов (120*4) К каждому из этих 480 вариантов можно добавить одну из 6 согласных. Получается еще плюс 480*6=2880. 2880 логинов из 5 символов Теперь к каждому из этих 2880 логинов можно добавить одну из 4 гласных. Получается 2880*4=11520 логинов из 6 символов ответ: 120+480+2880+11520=15000
Var
k,n,max:integer;
procedure hase(var k,n,max:integer); //сама последовательность
begin
if not(odd(n)) then n:=n div 2 else n:=n*3+1; //условие про чётность
writeln(n); //вывод нового члена последовательности
inc(k); //увеличение значения счётчика шагов
if max<n then max:=n; //поиск вершины
end;
procedure start(var k,n,max:integer); //название процедуры намекает
begin
readln(n);
k:=0;
writeln('Seq:');
max:=integer.MinValue;
while n<>1 do
hase(k,n,max);
writeln('Шаги:',k);
writeln('Вершина:',max);
end;
begin
start(k,n,max);
end.
Пример ввода:
6
Пример вывода:
Seq:
3
10
5
16
8
4
2
1
Шаги:8
Вершина:16