BÀI ĐĂNG MỚI NHẤT

 Chuỗi lặp lại là chuỗi mà nếu ta đọc từ trái sang phải có chuỗi ký tự liền sau giống dãy ký tự trước đó; Độ dài chuỗi lặp lại nhỏ nhất là 2 ký tự và là một số chẵn.

            Ví dụ: chuỗi ‘abab’ là chuỗi lặp lại; chuỗi ‘abcab’ không phải là chuỗi lặp lại.

            Viết chương trình nhập vào từ bàn phím chuỗi ký tự S có chiều dài không quá 255 ký tự. In ra màn hình chuỗi con lặp lại dài nhất của S. Biết rằng chuỗi con của S là chuỗi gồm một số ký tự liên tiếp nhau trong S có độ dài nhỏ hơn hoặc bằng độ dài của chuỗi S. Trong trường hợp không tìm được chuỗi lặp lại thì thông báo “KHONG TIM DUOC”.

            Chương trình ví dụ:

                        Moi ban nhap vao chuoi S: zababcabcdq

                        Chuoi con lap lai dai nhat la: abcabc


CODE THAM KHẢO

var s, kq: string;
procedure giai;
var i,j: integer;
    s2, s3: string;
begin
        for i:=1 to length(s)-1 do
        begin
                for j:=1 to length(s) div 2 do
                begin
                        s2:=copy(s,i,j);
                        s3:=s2;
                        while (pos(s3+s2,s) > 0) do s3:=s3+s2;
                        if (length(kq) < length(s3)) then
                          if (length(s3) > length(s2)) then kq:=s3;

                end;

        end;
end;
begin
        assign(input,'BAI04.INP'); reset(input);
        assign(output,'BAI04.OUT'); rewrite(output);
        readln(s);
        kq:='';
        giai;
        if length(kq) > 0 then write(kq)
        else write('KHONG TIM THAY');
        close(input); close(output);
end.







Viết chương trình tìm số nguyên dương a nhỏ nhất sao cho aa chia hết cho N (2 <= N <= 109) theo các yêu cầu sau:

            Input (dữ liệu nhập) cho trong tập tin BAI03.INP là số nguyên N (2 <= N <= 109).

            Output (dữ liệu xuất) ghi vào tập tin BAI03.OUT là số nguyên dương a nhỏ nhất sao cho aa chia hết cho N.

            Chương trình ví dụ:

Lần thử

BAI03.INP

BAI03.OUT

1

9

3

2

6

6


CODE THAM KHẢO:
var n: longint;
procedure XuLy(n: longint);
var a,m: longint;
begin
        a:=2; m:=1;
        while (a<=trunc(sqrt(n))) do
        begin
                if (n mod a = 0) then
                begin
                        while (n mod a = 0 ) do n:=n div a;
                        m:=m*a;
                end;
                a:=a+1;
        end;
        writeln(m*n);
end;
begin
        assign(input,'BAI03.INP'); reset(input);
        assign(output,'BAI03.OUT'); rewrite(output);
        while not(eof(input)) do
        begin
                readln(n);
                XuLy(n);
        end;
        close(input); close(output);
end.


Trên mặt đồng hồ, kim giờ đang chỉ vào số 12. Có hai thao tác trên đồng hồ gồm: thao tác điều chỉnh kim đồng hồ qua chiều thuận N số được ký hiệu: +N và thao tác điều chỉnh kim theo chiều ngược lại N số được ký hiệu: -N. Hãy tìm giá trị số mà kim giờ chỉ định sau khi thực hiện một thao tác điều chỉnh.

Ví dụ:

                        - Với N = 3 nghĩa là điều chỉnh kim giờ di chuyển theo chiều thuận 3 chữ số, từ số 12 đến số 3.

                        - Với N = -11 nghĩa là điều chỉnh kim giờ di chuyển theo chiều nghịch 11 chữ số, từ số 12 về số 1.

            Viết chương trình xác định giá trị số mà kim giờ chỉ đến theo các yêu cầu sau:

            Input (dữ liệu nhập) cho trong tập tin BAI02.INP là số nguyên N (-109 <=N<=109).

            Output (dữ liệu xuất) ghi vào tập tin BAI02.OUT là giá trị kim giờ chỉ đến sau khi đã thực hiện thao tác điều chỉnh.

            Chương trình ví dụ:

Lần thử

BAI02.INP

BAI02.OUT

1

3

3

2

-4

8

CODE THAM KHẢO:

var n: longint;

begin

        assign(input,'BAI02.INP'); reset(input);

        assign(output,'BAI02.OUT'); rewrite(output);

        while not(eof(input)) do

        begin

                readln(n);

                if n>0 then writeln(n mod 12)

                else write(12+(n mod 12));

        end;

        close(input); close(output);

end.




Cho xâu ký tự S có 4 hoặc 5 ký tự số, được quy ước như sau: hai ký tự cuối là hai chữ số cuối của một năm trong thế kỷ 21, một hoặc hai ký tự đầu cho biết ngày, các ký tự còn lại cho biết tháng.

            Giả sử: tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày, các tháng còn lại có 30 ngày, riêng tháng 2 năm thường có 28 ngày, năm nhuận có 29 ngày. Năm nhuận là năm chia hết cho 4 và không chia hết cho 100 hoặc năm chia hết cho 400.

            Viết chương trình kiểm tra xâu S (có 4 hoặc 5 ký tự số) có phải là ngày hợp lệ có dạng ngày/tháng/năm theo đúng yêu cầu bên trên, cụ thể như sau:

            Input (dữ liệu nhập) cho trong tập tin BAI01.INP là giá trị của xâu S.

            Output (dữ liệu xuất) ghi vào tập tin BAI01.OUT ngày hợp lệ được tạo ra theo yêu cầu bên trên. Trong trường hợp xâu không tạo được ngày hợp lệ thì kết quả “KHONG TAO DUOC”, trường hợp xâu S có nhiều cách tạo hợp lệ thì chỉ cần ghi ra một cách tạo hợp lệ.

            Chương trình ví dụ:

Lần thử

BAI01.INP

BAI01.OUT

1

1316

1/3/16

2

11216

11/2/16 (hoặc 1/12/16)

3

29217

KHONG TAO DUOC


CODE THAM KHẢO:
var s: string;
function day(m,y:byte): byte;
var sn: byte;
begin
        sn:=0;
        case m of
        1,3,5,7,8,10,12: sn:=31;
        4,6,9,11: sn:=30;
        2:
        if (y mod 400 = 0) or ((y mod 4 = 0) and (y mod 100 <>0)) then sn:=29
        else sn:=28;
        end;
        day:=sn;
end;
procedure tach(s:string);
var d,m,y,k: byte;
begin
        k:=0;
        val(copy(s,length(s)-1,2),y);
        if length(s) = 4 then
        begin
                writeln(s[1],'/',s[2],'/',y);
                k:=1;
        end
        else
        begin
                val(copy(s,1,2),d);
                val(copy(s,3,1),m);
                if (d<=day(m,y)) then begin write(d,'/',m,'/',y); k:=1; end;
                val(copy(s,1,1),d);
                val(copy(s,2,2),m);
                if (d<=day(m,y)) then
                begin
                        if k = 1 then writeln(' (hoac ',d,'/',m,'/',y,')')
                        else writeln(d,'/',m,'/',y);
                        k:=1;
                end;
        end;
        if k = 0 then write('KHONG TAO DUOC');
end;
begin
        assign(input,'BAI01.INP'); reset(input);
        assign(output,'BAI02.OUT'); rewrite(output);
        while not(eof(input)) do
        begin
                readln(s);
                tach(s);
        end;
        close(input); close(output);
end.



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