Recur13. Описать рекурсивную функцию P_Alindrom($$S$$) логического типа, возвращающую True, если строка $$S$$ является палиндромом (то есть читается одинаково слева направо и справа налево), и False в противном случае. Оператор цикла в теле функции не использовать. Вывести значения функции P_Alindrom для пяти данных строк.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
program Recur13; var S:String; i:integer; Function P_Alindrom(S:String):boolean; begin if length(S)<=1 then P_Alindrom:=True else if S[1] = S[length(S)] then begin Delete(S,1,1); Delete(S,length(S),1); P_Alindrom:=P_Alindrom(S) and True; end else P_Alindrom:=False; end; begin for i:=1 to 5 do begin Write('S: '); Readln(S); Writeln(P_Alindrom(S)); end; end. |
Другие задачи из раздела Recur можно посмотреть здесь.
Комментарии: