Trang 2 của 2 Đầu tiênĐầu tiên 12
Kết quả 11 đến 19 của 19
  1. #11
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    Trích dẫn Gửi bởi caodaiyouthgroup
    Bài hay nè:
    Các hoán vị của n chữ cái hoa Tiếng anh A..Z được sắp tăng theo trật tự từ điển và được viết liền nhau để tạo thành một dãy kí tự duy nhất. Xác định kí tự thứ m trong dãy, gọi là kí tự c.
    Dữ liệu vào: Cho trong File vb mang tên HV.INP, gồm 1 dòng chứa 2 số nguyên n và m. Các số trên cùng dòng cách nhau bởi 1 dấu cách. 1<=n<=10, 1<=m<=n*n!
    Dữ liệu ra: vào file văn bản mang trên HV.OUT, gồm 1 dòng cho biết kí tự thứ m trong dãy
    Thí dụ:
    HV.INP HV.OUT
    4 15 D
    Trong thí dụ trên, do n = 4 nên ta có dãy: ABCDABCDABCDABCD.... và do đó kí tự thứ 15 trong dãy sẽ là D.
    Cố gắng sưu tầm bài hay.
    bác có nhầm không, ký tự thứ 15 là C mà @__@
    thuật toán đơn giản thôi: lấy m mod n = i, i là thứ tự trong dãy ABC....

  2. #12
    Ngày tham gia
    Aug 2015
    Bài viết
    2
    Cho xin lỗi nha,
    Trong thí dụ trên, do n = 4 nên ta có dãy: ABCDABDCACBDACDBAD... và do đó kí tự thứ 15 trong dãy sẽ là: D

  3. #13
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    Sao ko thấy ai bình luận thế nhỉ ? Hay !

  4. #14
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    đúng đấy sao ít thấy mem nào yêu pascal bình luận, nếu có thì mình sẽ cố gắng tìm thêm bài tập hay và khó để đăng.

  5. #15
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Trích dẫn Gửi bởi caodaiyouthgroup
    Bài hay nè:
    Các hoán vị của n chữ cái hoa Tiếng anh A..Z được sắp tăng theo trật tự từ điển và được viết liền nhau để tạo thành một dãy kí tự duy nhất. Xác định kí tự thứ m trong dãy, gọi là kí tự c.
    Dữ liệu vào: Cho trong File vb mang tên HV.INP, gồm 1 dòng chứa 2 số nguyên n và m. Các số trên cùng dòng cách nhau bởi 1 dấu cách. 1<=n<=10, 1<=m<=n*n!
    Dữ liệu ra: vào file văn bản mang trên HV.OUT, gồm 1 dòng cho biết kí tự thứ m trong dãy
    Thí dụ:
    HV.INP HV.OUT
    4 15 D
    Trong thí dụ trên, do n = 4 nên ta có dãy: ABCDABCDABCDABCD.... và do đó kí tự thứ 15 trong dãy sẽ là D.
    Cố gắng sưu tầm bài hay.
    mình xài quay lui [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG] bài giải của mình đây, bạn xem có đúng ko nhé ( :a: test thì thấy đúng rùi đó):

    Mã:
    Var m,n,dem,k:integer;
        x:array[1..10] of integer;
        c:array[1..10] of boolean;
     
    Procedure try(i:integer);
    Var a,j:integer;
    Begin
            For j:=1 to n do
            If c[j] then
            Begin
                    x[i]:=j;
                    If i=n then inc(dem)
                    else
                    Begin
                       c[j]:=false;
                       try(i+1);
                       c[j]:=true;
                    End;
                    If dem=k then
                     Begin
                       a:=m mod n;
                       If a=0 then a:=n;
                       Writeln(chr(x[a]+64));
                       Readln;
                       halt;
                    End;
            End;
    End;
     
    Begin
            Write('Nhap n,m:');Readln(n,m);
            fillchar(x,sizeof(x),0);
            fillchar(c,sizeof(c),true);
            dem:=0;
            If m mod n = 0 then k:=m div n
            else k:=(m div n)+1;
            try(1);
    End.

  6. #16
    Ngày tham gia
    Aug 2015
    Bài viết
    4
    Trích dẫn Gửi bởi caodaiyouthgroup
    Thêm một bài hay nữa nè:
    Cho một biểu thức toán học chỉ gồm các số, khoảng trắng, dấu + - * / hoặc các cặp dấu ngoặc ()
    Lập chương trình tính ra giá trị của chuỗi đã nhập và in ra kết quả.
    lập trình cái nào cũng giống như viết trình giả lập máy tính CASIO FX500MS [IMG]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAA l21bKAAAAA1BMVEXh5PJm+yKVAAAAAXRSTlMAQObYZgAAAApJR EFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=[/IMG]

  7. #17
    Ngày tham gia
    Nov 2015
    Bài viết
    2
    Bạn thử cặp số 10 151200 và 10 725760 và 10 36288000 theo mình còn xíu nữa là ok rồi. Cho bạn lời khen và 10 điểm. Chúc bạn thành công.

  8. #18
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Giải bài dãy số hạnh phúc:
    Mã:
    uses crt;
    Var n, dem: word;
    day: array[1..10000] of word;
    {=================}
    Procedure Nhap;
    Begin
    Clrscr;
    Write('Nhap vao so tu nhien n = '); Readln(n);
    if n = 0 then
    Begin
    Writeln('Day so hanh phuc tim duoc la 0'); 
    Readln; halt;
    end;
    dem:=1; day[dem]:=n;
    end;
    {============}
    Function nto(i:word):boolean;
    Var u:word;
    Begin
    nto:=True;
    for u:=2 to Trunc(sqrt(i)) do
    if i mod u = 0 then
    begin
    nto:=false;
    exit;
    end;
    end;
    {==========}
    procedure xuly;
    var i, so, d:word;
    Begin
    For so:=n-1 downto 1 do
    Begin
    d:=dem;
    if nto(so) then
    Begin
    Inc(dem); day[dem]:=so;
    end
    else
    for i:=1 to d do
    if day[i] mod so = 0 then 
    begin
    inc(dem); day[dem]:=so; i:=d;
    end;
    end;
    end;
    {==========}
    procedure viet;
    var i:word;
    Begin
    Writeln(' Day so hanh phuc tim duoc la:');
    For i:=1 to dem do Write(day[i]:5);
    Readln
    End;
    {=========}
    Begin
    nhap; xuly; viet;
    end.
    Mong các bạn cùng hưởng ứng. Vì nền tin học của nước nhà. Chúc bạn [you] thành công.

  9. #19
    Ngày tham gia
    Jan 2016
    Bài viết
    9
    Mình có bài này hay

    For so:=n-1 downto 1 do
    Begin
    d:=dem;
    if nto(so) then
    Begin
    Inc(dem); day[dem]:=so;
    end
    else
    for i:=1 to d do
    if day mod so = 0 then
    begin
    inc(dem); day[dem]:=so; i:=d;
    end;
    end;



    Anh HSG ơi, em nghĩ là số thứ i trong dãy hoặc là số nguyên tố, hoặc là ước của n luôn, nên không cần phải thêm vòng lặp for i thứ 2 đâu ạ!

Trang 2 của 2 Đầu tiênĐầu tiên 12

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •