Go Back   Cựu Học Sinh Lê Quý Đôn - Long An > :: Góc Học Tập :: > Tin học > Tin học phổ thông

Bác nào có đề Tin học trẻ năm cũ post hộ em!

Bác nào có đề Tin học trẻ năm cũ post hộ em!

this thread has 13 replies and has been viewed 16947 times

Gởi Ðề Tài Mới Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 26-03-2009, 09:07 PM   #11
Hồ sơ
myhanh
 
myhanh's Avatar
 
Tham gia ngày: Dec 2004
Cư ngụ: Love Planet
Tuổi: 44
Số bài viết: 7,404
Tiền: 0
Thanks: 2,122
Thanked 5,472 Times in 2,040 Posts
myhanh is on a distinguished road
Default Ðề: Bác nào có đề Tin học trẻ năm cũ post hộ em!

Phần phân tích tại sao có kết quả này mới quan trọng.
tinh(x,y):
+Khi y=1 áp dụng luật c x lần ta có tinh=x.1*1=x.2=2x=(2x)^1=(2x)^y
+Khi y > 1 áp dụng luật y lần ta có:
tinh=(x*1)^y=(2x)^y.
Tóm lại:
tinh(x,y)=(2x)^y.
Vậy bài này đâu cần đệ quy.

__________________
Necessity is the mother of in(ter)vention.
Speak softly & carry a big stick.
My Technical Blog

thay đổi nội dung bởi: myhanh, 26-03-2009 lúc 09:14 PM.
myhanh is offline   Trả Lời Với Trích Dẫn
Old 27-03-2009, 06:41 PM   #12
Hồ sơ
duyhung123abc
Senior Member
 
duyhung123abc's Avatar
 
Tham gia ngày: Jun 2008
Số bài viết: 206
Tiền: 25
Thanks: 10
Thanked 45 Times in 40 Posts
duyhung123abc is on a distinguished road
Default Ðề: Bác nào có đề Tin học trẻ năm cũ post hộ em!

Dạ đúng nhưng với đề kiểu này thì đệ quy vẫn chạy ngon lành .
duyhung123abc is offline   Trả Lời Với Trích Dẫn
Old 04-04-2009, 12:53 AM   #13
Hồ sơ
johnceduy
Senior Member
 
johnceduy's Avatar
 
Tham gia ngày: Dec 2008
Cư ngụ: Lê Quý Đôn
Số bài viết: 115
Tiền: 25
Thanks: 54
Thanked 83 Times in 18 Posts
johnceduy is on a distinguished road
Tim Ðề: Bác nào có đề Tin học trẻ năm cũ post hộ em!

Đây là bài 2 của em, test cái VD thì đúng, nhưng sang chuỗi khác thì sai, chẳng hạn chuỗi 1432412 1 thi no lai ra 11124324
Mấy anh xem hộ em nhá, em thấy cái while có vấn đề thì phải Y.Y
Code:
Program bai2;
Uses crt;
Var a,i,m,n,h,k,kt:integer;
        s:string;
Procedure  nhap(var s:string);
 Begin
  Write('Nhap vao chuoi:');readln(s);
  end;
{***************************************}
Procedure dem(var s:string;var m,n,h,k,kt:integer);
Begin
m:=0;
n:=0;
h:=0;
k:=0;
 For i:=1 to length(s) do begin
  if s[i]='1' then m:=m+1;
  if s[i]='2' then n:=n+1;
  if s[i]='3' then h:=h+1;
  if s[i]='4' then k:=k+1;
  if s[i]=' ' then kt:=i;
 end;
  n:=m+n;
  h:=n+h;
  k:=h+k;
  end;
{*********************************************************}
Procedure doicho(var s:string;var kt:integer;i:integer);
 Begin
  s[kt]:=s[i];
  s[i]:=' ';
  kt:=i;
  end;
 {**********************************************************}
Begin
clrscr;
nhap(s);
dem(s,m,n,h,k,kt);
a:=length(s);
 While kt<>length(s) do begin
        If (kt>=1) and (kt<=m) then
        For i:=1 to a do
         if (s[i]='1') and (i>m) and (kt<=m) and (kt>=1) then
         begin
         doicho(s,kt,i);
         write(kt:5);
         end;
        {****************************}
        If (kt>m) and (kt<=n) then
         For i:=1 to a do
          if (s[i]='2') and ((i<=m) or ((i>n) and (i<=k))) and (kt>m) and(kt<=n) then
          begin
          doicho(s,kt,i);
          write(kt:5);
          end;
         {****************************}
         If (kt>n) and (kt<=h) then
         For i:=1 to a do
          if (s[i]='3') and ((i<=n) or ((i>h) and (i<=k))) and(kt>n)and (kt<=h)then
          Begin
          doicho(s,kt,i);
          write(kt:5);
          end;
         {*****************************}
         If (kt>h) and (kt<=k) then
         For i:=1 to a do
          if (s[i]='4') and (i<=h) and (kt>h)and (kt<=k) then
              begin
              doicho(s,kt,i);
              write(kt:5);
              end;
end;
writeln;
Write(s:5);
Readln;
end.
__________________
Nhớ, nhớ, nhớ quá đi!

johnceduy is offline   Trả Lời Với Trích Dẫn
Old 04-04-2009, 09:29 AM   #14
Hồ sơ
myhanh
 
myhanh's Avatar
 
Tham gia ngày: Dec 2004
Cư ngụ: Love Planet
Tuổi: 44
Số bài viết: 7,404
Tiền: 0
Thanks: 2,122
Thanked 5,472 Times in 2,040 Posts
myhanh is on a distinguished road
Default Ðề: Bác nào có đề Tin học trẻ năm cũ post hộ em!

Viết như vậy chưa đúng rùi
Trích:
if s[i]='1' then m:=m+1;
if s[i]='2' then n:=n+1;
if s[i]='3' then h:=h+1;
if s[i]='4' then k:=k+1;
if s[i]=' ' then kt:=i;
Nên dùng case nha (chương trình dễ đọc, chạy nhanh hơn)
Trích:
While kt<>length(s) do begin
If (kt>=1) and (kt<=m) then
For i:=1 to a do
if (s[i]='1') and (i>m) and (kt<=m) and (kt>=1) then
begin
doicho(s,kt,i);
write(kt:5);
end;
{****************************}
If (kt>m) and (kt<=n) then
For i:=1 to a do
if (s[i]='2') and ((i<=m) or ((i>n) and (i<=k))) and (kt>m) and(kt<=n) then
begin
doicho(s,kt,i);
write(kt:5);
end;
{****************************}
If (kt>n) and (kt<=h) then
For i:=1 to a do
if (s[i]='3') and ((i<=n) or ((i>h) and (i<=k))) and(kt>n)and (kt<=h)then
Begin
doicho(s,kt,i);
write(kt:5);
end;
{*****************************}
If (kt>h) and (kt<=k) then
For i:=1 to a do
if (s[i]='4') and (i<=h) and (kt>h)and (kt<=k) then
begin
doicho(s,kt,i);
write(kt:5);
end;
end;
Viết theo kiểu của em lần đầu vào nếu kt ở cuối chuỗi là tiêu
Giải thuật của anh
Trích:
Kiểu dữ liệu:
type vitri = record
begin
vitri: array[1..255] of integer;/* vi tri cua so nay trong s*/
index:integer; /*vi tri dau tien trong vitri sai vi tri*/
len:integer; /*tong so thuoc loai nay*/
end;
var so:array[1..4] of vitrisai;

Thủ tục đổi số: doiso(i)
+ Nếu so[i].index > so[i].len thì return
+Ngược lại doicho (s,kt, so[i].vitri[so[i].index])
inc(so[i].index).
+Nếu so[i].vitri[so[i].index] thuộc vùng số j (j=1..4) thì đệ quy doiso(j).
Chương trình chính:
Duyệt qua s và cập nhật các vị trí số 1 vào so[1], số 2 vào so[2], số 3 vào so[3], số 4 vào so[4].
for i:=1 to 4 do doiso(i);
__________________
Necessity is the mother of in(ter)vention.
Speak softly & carry a big stick.
My Technical Blog
myhanh is offline   Trả Lời Với Trích Dẫn
Đã có thành viên gửi lời cám ơn đến myhanh vì bạn đã đăng bài:
johnceduy (04-04-2009)
Trả lời



Quyền Sử Dụng Ở Diễn Ðàn
Bạn không được quyền gởi bài
Bạn không được quyền gởi trả lời
Bạn không được quyền gởi kèm file
Bạn không được quyền sửa bài

vB code đang Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Chuyển đến

Chủ đề tương tự
Ðề tài Người Gởi Chuyên mục Trả lời Bài mới gởi
Box Người Lớn: Sự thiên vị các post ! rangsun ✉Hộp thư 11 24-11-2008 01:56 PM
Cách post bài - post hình kienvang Hướng dẫn sử dụng 1 22-05-2008 05:35 PM
Các post bài - post hình . kienvang ✉Hộp thư 6 30-08-2006 08:57 PM
Các post bài - post hình . kienvang Nhạc Quốc tế 0 01-01-1970 07:00 AM
Các post bài - post hình . kienvang Vui cười 0 01-01-1970 07:00 AM


Website sử dụng phần mềm vBulletin phiên bản 3.6.8
do Công ty TNHH Jelsoft giữ bản quyền từ 2000 - 2024.
Múi giờ GMT +7. Hiện tại là 10:04 AM.

Hội CHS Lê Quý Đôn-Long An giữ bản quyền nội dung của website này

Tự động[F9]TELEX VNI VIQR VIQR* TắtKiểm chính tảDấu cũ
phan mem quan ly ban hang | thuê vps