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

M

mikelhpdatke

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 :))
 
M

mikelhpdatke

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
 
Q

quanghero100

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

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.
 
T

tmb12

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:
M

mikelhpdatke

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:
T

tmb12

Đầ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:
M

mikelhpdatke

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.
 
T

tmb12

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
 
M

mikelhpdatke

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

tmb12

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:
1

11thanhkhoeo

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
 
M

mikelhpdatke

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
 
C

cuong276

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.
 
Top Bottom