BÀI TẬP 40: TÊN THIÊNG

Thời xa xưa, ở một bộ tộc cổ đại giữ tập tục đặt tên cho những đứa trẻ mới sinh ra theo tên Thiêng của gia đình với hy vọng chúng được thần linh phù hộ, hạnh phúc, khoẻ mạnh và có thể chống lại các thế lực đen tối, ma quỹ cung quanh. Mỗi gia đình có một tên thiêng riêng do Tộc trưởng đặt cho và từ tên Thiêng đó mà đặt tên cho các thành viên khác trong gia đình theo cách như sau:

            - Tên các thành viên trong gia đình phải là một xâu con gồm một hay nhiều ký tự liên tiếp nhau của tên Thiêng (tên của các thành viên không được trùng nhau và không trùng với tên Thiêng).

            Ví dụ: tên Thiêng là: “alubala” thì các tên có thể đặt là “a”, “alu”, “luba”, “bala”, “ala”,…. (các tên không được phép đặt là “aba”, “ula”, “lula”,…).

            Yêu cầu: Tộc trưởng muốn biết dựa vào số tên có thể đặt, mỗi gia đình có thể đặt được tối đa bao nhiêu tên.

            - Dữ liệu vào: File văn bản tenthieng.inp gồm một dòng chứa tên thiêng, trong đó chỉ chứa chữ cái Latinh thường, có độ dài không quá 255 ký tự.

            - Dữ liệu ra: File văn bản tenthieng.out chứa một số nguyên là số lượng các tên có thể đặt khác nhau.

Ví dụ:

tenthieng.inp

tenthieng.out

alubala

23


CODE THAM KHẢO:
program Ten_thieng;
uses crt;
var st, st1, st2: string;
    i,j,d,dem: byte;
    f: text;
    kt: boolean;
begin
    assign(f,'tenthieng.inp'); reset(f);
    read(f,st);
    close(f);
    assign(f,'tenthieng.out'); rewrite(f);
    for i:=1 to length(st)-1 do
        for j:=1 to length(st)-i+1 do
            begin
                st1:=copy(st,j,i);
                kt:=true;
                for d:=1 to j-1 do
                    begin
                        st2:=copy(st,d,i);
                        if st1=st2 then kt:=false;
                    end;
                if kt then inc(dem);
            end;
    write(f,dem);
    close(f);
end.


Nhãn:

Đăng nhận xét

[blogger]

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget