Информатика и технология программирования


           

функция TEST проверяет, не совпадает



{ // цепочку из нового слова,

cout &#60&#60 pw &#60&#60 "\n";
return 1; // удача - вывести слово и выйти

}
}
w[n]=pw; // возвратить исключенное слово

}
return 0;
}

Чисто технические детали : функция TEST проверяет, не совпадает ли окончание первой строки с началом второй путем обычного сравнения строк при заданной длине " хвоста" первой строки.



int TEST(char *s, char *r)
{ int n,k;
n=strlen(s);
if (n==0) return 1;
for (;*s!=0 &#38&#38 n&#62 1; s++,n--)
if (strncmp(s,r,n)==0) return 1;
return 0; }





Другая техническая проблема - удобство первоначального запуска рекурсии. Функция TEST при первом параметре - пустой строке возвращает
ИСТИНУ при любом виде второй строки. Этого достаточно, чтобы запустить первый шаг рекурсии. При наличии пустой строки в качестве параметра функции step на первом шаге рекурсии будет производиться безусловная проверка каждого слова на предмет создания цепочки.

void main() { step(""); }


Содержание  Назад  Вперед