Viết chương trình nhập vào một xâu ký tự từ bàn phím. Tìm xâu đảo ngược của xâu đó rồi in kết quả ra màn hình theo

Câu 29: Viết chương trình nhập vào một xâu ký tự từ bàn phím. Tìm xâu đảo ngược của xâu đó rồi in kết quả ra màn hình theo 2 cách: Đệ qui và không đệ qui.

Trả lời

Ý tưởng:

     - Nếu xâu St có 1 ký tự thì xâu đảo = St.

     - Ngược lại: Xâu đảo = Ký tự cuối + Đệ qui(Phần còn lại của xâu St).

Uses Crt;

Var  St:String;

{Giải thuật không đệ qui}

Function XauDao(St:String):String;

Var  S:String;

        i:Byte;

Begin

    S:=’’;

    For i:=Length(St) DowTo 1 Do S:=S+St[i];

    XauDao:=S;

End;

{Giải thuật đệ qui}

Function DeQui(St:String):String;

Begin

    If Length(St)<=1 Then DeQui:=St

    Else DeQui:=St[Length(St)] + DeQui(Copy(St,1,Length(St)-1));

End;

Begin

    Write(‘Nhap xau St: ‘); Readln(St);

    Write(‘Xau dao nguoc: ‘, XauDao(St));

    Readln;

End.

Câu hỏi cùng chủ đề

Xem tất cả