Вопрос задан 22.03.2019 в 23:11. Предмет Информатика. Спрашивает Ким Алина.

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

возможные слова, состоящие из K букв, в которых есть по крайней мере две одинаковые буквы, не обязательно стоящие рядом. Программа не должна строить другие слова, не соответствующие условию.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Великодный Дмитрий.
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. 
0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос