В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести на экран все возможные слова, состоящие из K букв, в которых есть по крайней мере две одинаковые буквы, не обязательно стоящие рядом. Програ...

В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести на экран все возможные слова, состоящие из K букв, в которых есть по крайней мере две одинаковые буквы, не обязательно стоящие рядом. Программа не должна строить другие слова, не соответствующие условию.
Гость
Ответ(ы) на вопрос:
Гость
const   ab = 'ышчо'; //алфавит племени var   vort: string;   j, k, raz: integer;   per: boolean;//признак переноса разряда //проверка наличия совпадающих букв в слове function kond(var vort: string): boolean; var   n: integer; begin   result := false;   n := length(vort);   for var i := 1 to n - 1 do     for var j := i + 1 to n do       if vort[j] = vort[i] then       begin         result := true;         exit;       end; end; begin   writeln('Введите k');   readln(k);   for var i := 1 to k do     vort := vort + ab[1];   raz := k;   per := false;   while raz > 0 do     if per then     begin       while vort[raz] = ab[4] do       begin         vort[raz] := ab[1];         raz := raz - 1;         if raz < 1 then exit;       end;       j := pos(vort[raz], ab) + 1;       vort[raz] := ab[j];       per := false;       raz := k;     end       else     begin       if kond(vort) then writeln(vort);       j := pos(vort[k], ab) + 1;       if j > 4 then         per := true       else         vort[k] := ab[j];     end; end. 
Не нашли ответ?
Ответить на вопрос
Похожие вопросы