game box tin - Chém code như chém gió

Thảo luận trong 'Thảo luận chung' bắt đầu bởi cuong276, 10 Tháng sáu 2012.

Lượt xem: 25,930

  1. mikelhpdatke

    mikelhpdatke Guest

    Em chưa code nhưng ý tưởng trước, tý ăn cơm xong e code :D
    Đếm độ dài của xâu nhị phân đó. Đảo vị trí (hoán vị) xong thử thôi :))
     
  2. mikelhpdatke

    mikelhpdatke Guest

    3631. Gửi thư
    Mã bài: NKLETTER

    Vị Giám đốc công ty XYZ cần gửi một văn bản quan trọng tới một đối tác của mình. Văn bản là một xâu S các chữ cái la tinh in thường. Để bảo mật nội dung văn bản, ông Giám đốc gửi 2 bức thư. Bức thư thứ nhất là phần đầu Sb của xâu S, bức thư thứ 2 là phần cuối Se của S. Hai bức thư Sb và Se đảm bảo đầy đủ nội dung của S, tuy nhiên có thể một phần cuối của Sb có thể được viết lặp lại trong phần đầu của Se, song số kí tự được viết lặp lại không biết trước.

    Ví dụ: với văn bản S=’truongnguyenduquannhat’ tạo ra hai bức thư:

    Sb=truongngueNdu
    ngueNduquanNhat=Se=

    Sb=’truongnguyendu’ và Se=’nguyenduquannhat’

    Yêu cầu: Cho hai xâu Sb và Se, hãy xác định một xâu S có thể là nội dung của bức thư sao cho độ dài của xâu S là ngắn nhất.
    Dữ liệu

    Dòng đầu chứa xâu Sb, dòng thứ hai chứa xâu Se. Mỗi xâu có độ dài không quá 250.
    Kết quả

    Ghi ra độ dài của xâu S tìm được.
    Ví dụ

    Dữ liệu
    truongnguyendu
    nguyenduquannhat

    Kết quả
    22
     
  3. quanghero100

    quanghero100 Guest

    Anh nộp thử rùi được có 80 à nãn
    Mã:
    uses crt;
    var sb,se,ss:string;
        i,l:integer;
    begin
       clrscr;
        readln(sb);
        readln(se);
        i:=length(se)+1;
        repeat
            dec(i);
            ss:=copy(se,1,i);
            if pos(ss,sb)<>0 then delete(se,pos(ss,se),i);
            l:=length(sb)+length(se);
        until pos(ss,sb)<>0;
        writeln(l);
        readln;
    end.
    
     
  4. mikelhpdatke

    mikelhpdatke Guest

    Có cách nào QHĐ ko nhể :-?, có khi QHĐ thì lại AC.........
     
  5. tmb12

    tmb12 Guest

    Diễn đàn mình bị sao ý mình đang cho đề thì tự nhiên bị out ra mất trắng hơn 30' gõ phím miệt mài!

    Mình có rất nhiều bài tập hay muốn gửi cho các bạn nhưng lúc nãy gõ được bài tập số 50 thì bị out ra ngoài mất trắng hết nên lần này mình sẽ bỏ nó vào 1 file *.text và upload lên diễn đàn. Mai nha! Giờ mẹ mình bắt phải đi ngủ rồi!
     
    Last edited by a moderator: 2 Tháng bảy 2012
  6. mikelhpdatke

    mikelhpdatke Guest

    Nhớ post lên sơm nha, mình cũng đang cần bài tập.......... :D
     
  7. mikelhpdatke

    mikelhpdatke Guest

    3198. Xúc xắc bò

    Mã bài: BONES


    Bessie rất yêu thích chơi những trò chơi đổ xúc xắc và cô bò này đã nài được bác nông dân John chở tới cửa hàng đồ chơi và cô bò đã mua 3 cái xúc xắc về để lăn.
    Những viên xúc xắc này tương ứng có S1, S2 và S3 mặt đều nhau, các mặt được đánh số từ 1->S1, 1->S2 và 1->S3 (2 <= S1 <= 20; 2 <= S2 <= 20; 2 <= S3 <= 40).
    Bessie cứ thả xúc xắc liên tục và mỗi lần lại ghi nhận lại 1 số nguyên là tổng giá trị của 3 mặt xúc xắc thả được. Mục đích của cô bò là để tìm ra xem tổng giá trị nào xuất hiện nhiều nhất.
    Cho số mặt của 3 xúc xắc, hãy xác định xem tổng giá trị nào xuất hiện nhiều nhất. Nếu có nhiều hơn 1 giá trị xuất hiện nhiều nhất thì ghi ra giá trị nhỏ nhất.
    DỮ LIỆU


    • Dòng 1: 3 số nguyên cách nhau bởi dấu cách: S1, S2 và S3
    KẾT QUẢ


    • Dòng 1: Số nguyên nhỏ nhất là tổng giá trị xuất hiện nhiều lần nhất, giả sử rằng xác suất các mặt xúc xắc xuất hiện là như nhau.
    VÍ DỤ

    Dữ liệu 3 2 3 Kết quả 5


    Bài này duyệt trâu bò cũng AC, thôi đưa code lên luôn :)). Còn 5 bài kia nhường cho mấy anh :)). Nhiều kiến thức e chưa học
    Mã:
    Program Bones;
    Var s1,s2,s3:Integer;
        A:array[1..100] Of  integer;
    
    Procedure Init;
     Var i,j,k,max,imax:integer;
     Begin
      FillChar(A,SizeOf(A),0);
      Readln(S1,s2,s3);
      For i:=1 to s1 do
       For j:=1 to s2 do
        For k:=1 to s3 do
          inc(A[i+j+k]);
       max:=A[1];
       imax:=1;
      For i:=2 to 100 do
          If A[i]>max then
            Begin
             max:=A[i];
             imax:=i;
            End;
    Writeln(imax);
    End;
    
    BEGIN
    Init;
    readln
    end.
    
     
    Last edited by a moderator: 3 Tháng bảy 2012
  8. tmb12

    tmb12 Guest

    Đầu tiên sẽ là 4 bài dễ để khởi động:
    1/Xây dựng chương trình thực hiện nhập vào hai đa thức rồi in ra màn hình tổng, hiệu, tích thương của hai đa thức đã nhập.
    2/ Viết một chương trình ứng dụng thực hiện việc nhập vào hai số phức A và B rồi in ra màn hình:
    +Modul của mỗi số phức đó
    +Dạng lượng giác của mỗi số phức đó
    +Tính số phức C = A+B, D = A*B; E = A/B.
    3/ Viết một chương trình ứng dụng thực hiện việc nhập vào hai phân số A và B rồi in ra màn hình:
    +Dạng tối giản của hai phân số đó
    +Tổng, hiệu, tích, thương của hai phân số đó
    +Phân số nghịch đảo của hai phân số đó.
    4/Viết chương trình đổi 1 số thập phân sang dạng nhị phân, bát phân, thập lục phân.
     
    Last edited by a moderator: 3 Tháng bảy 2012
  9. tmb12

    tmb12 Guest

    Có anh nào vô giải 4 bài trên không để em một mình vắng lặng quá!:M012:
     
  10. mikelhpdatke

    mikelhpdatke Guest


    Bác cho bài khác đi bác...................... ;))
     
  11. tmb12

    tmb12 Guest

    Làm mấy bài dễ hâm nóng tinh thần đi bạn rồi muốn gì được đó liền hà!
     
    Last edited by a moderator: 3 Tháng bảy 2012
  12. mikelhpdatke

    mikelhpdatke Guest

    Bài 4:

    Sai thì báo lại nha :D
    Mã:
    Program ChuyenCoSo;
    Var A:array[1..100] Of Integer;
        B:array[1..6] Of String = ('A','B','C','D','E','F');
    n:integer;
    Procedure Chuyen2(n:integer);
    Var m,i,imax:integer;
     Begin
      m:=n;
      i:=0;
       Repeat
         inc(i);
         A[i]:=m mod 2;
         m:=m div 2;
       Until m=0;
      imax:=i;
     For i:=imax downto 1 do write(A[i]);writeln;
    End;
                  {  -------------------------------------}
    Procedure Chuyen8(n:integer);
    Var m,i,imax:integer;
     Begin
      m:=n;
      i:=0;
       Repeat
         inc(i);
         A[i]:=m mod 8;
         m:=m div 8;
       Until m=0;
      imax:=i;
     For i:=imax downto 1 do write(A[i]);writeln;
    End;
                  {  -------------------------------------}
    Procedure Chuyen16(n:integer);
    
    Var m,i,imax,t:integer;
        A:array[1..100] Of String;
     Begin
      m:=n;
      i:=0;
       Repeat
         inc(i);
         t:=m mod 16;
          If t>=10 then t:=t-9;
         A[i]:=B[t];
         m:=m div 16;
       Until m=0;
      imax:=i;
     For i:=imax downto 1 do write(A[i]);writeln;
    End;
    
    BEGIN
     Readln(n);
     Chuyen2(n);
     Chuyen8(n);
     Chuyen16(n);
     readln
     End.
     
  13. tmb12

    tmb12 Guest

    Đang cài lại máy vì bị virus hoành hành quá xong sẽ test liền!
     
  14. tmb12

    tmb12 Guest

    to Mike: biên dịch thì không bị lỗi nào hết nhưng khi chạy thì bị treo không hiện cái gì hết

    p/s: Có cách nào up ảnh trực tiếp lên diễn đàn hay không mình đã chụp lại nhưng không up được
     
  15. mikelhpdatke

    mikelhpdatke Guest

    Xem lại đê, mình test vẫn bình thường nha............................. Up ảnh vẫn bt mà
     
  16. tmb12

    tmb12 Guest

    Xin lỗi mình test lại rồi chạy rất tốt! Bạn giỏi thật!
     
    Last edited by a moderator: 3 Tháng bảy 2012
  17. 11thanhkhoeo

    11thanhkhoeo Guest

    Chuyển từ 10 sang 16 à

    Cách chuyển từ 2 sang 16, 2 sang 8 dễ hơn

    Đấy chính là cơ sở của tin học với cách lưu và mã hóa dữ liệu,

    Chú Đạt làm thử theo hướng anh nói xem

    Thân
     
  18. mikelhpdatke

    mikelhpdatke Guest

    Chuyển từ 2 sang 16.

    Mã:
    Program Chuyencoso;
    
    Var n:String;
     Cs16:array[0..15] Of String=
     ('0','1','2','3',
      '4','5','6','7',
      '8','9','A','B',
      'C','D','E','F') ;
     Gtcs2:array[0..15] Of String=
     ('0000','0001','0010','0011',
      '0100','0101','0110','0111',
      '1000','1001','1010','1011',
      '1100','1101','1110','1111');
    
    Procedure Chuyen2s16(n:string);
    Var i:integer;
    m,s1,KQ:string;
     Begin
     m:=n;
      While (length(m )mod 4<>0) do  m:='0'+m;
     // writeln(m,'--------------------');
      s1:='';
      KQ:='';
       Repeat
        s1:=Copy(m,1,4);
        For i:=0 to 15 do If Gtcs2[i]=s1 then break;
        KQ:=KQ+Cs16[i];
        Delete(m,1,4);
       Until m='';
       writeln(KQ);
      End;
    
    BEGIN
    Write('Nhap so nhi phan:');
    readln(n);
    Writeln('Chuyen tu co so 2 sang 16');
    Chuyen2s16(n);
    readln
    END.
    Chuyển từ 2 sang 8 cũng gần tương tự như vậy :D
     
  19. cuong276

    cuong276 Guest

    Cái bài 2 khó đó.Có cả lượng giác nữa kìa.
    Lượng giác mình chưa học nên giao mấy bài đó cho mấy anh cấp 3 nha.
     
  20. tmb12

    tmb12 Guest

    Vậy thì bỏ bài số 2 đi vì mấy bài tập này dành cho lớp 12 mà;)
     
Chú ý: Trả lời bài viết tuân thủ NỘI QUY. Xin cảm ơn!

Draft saved Draft deleted

CHIA SẺ TRANG NÀY