Trang 1 / 4 1234 LastLast
Hiển thị kết quả từ 1 đến 10 / 36
  1. #1
    Tham gia
    07-01-2009
    Location
    Khánh Hoà
    Bài viết
    40
    Like
    0
    Thanked 1 Time in 1 Post

    Hạnh phúc Chuẩn bị thi hsg tin 9 Tỉnh (thành phố)

    Các bạn học sinh lớp 9 chuẩn bị thi hsg tin Tỉnh (thành phố) thì vào đây cùng trao đổi nha!
    Mình có bài toán như sau:
    In ra các hoán vị của một dãy a gồm n phần tử
    vd: n=3;
    123 132 213 231 312 321
    Quote Quote

  2. #2
    Tham gia
    13-10-2008
    Bài viết
    12
    Like
    0
    Thanked 0 Times in 0 Posts
    Quá dễ:

    Var
    A,T : string;
    i,j,n :integer;

    Begin
    Write('Viet ra day so A : '); Readln(A);
    n:=length(A);
    Writeln('Nhung day so hoan vi: ');
    For i:=1 to n do
    for j:=n to 2 do
    Begin
    T[1]:=A[j];
    A[j-1]:=A[j];
    A[j]:=T[i];
    Write(A,' ');
    End;
    Readln;
    END.

  3. #3
    Tham gia
    31-08-2002
    Location
    Trái đất
    Bài viết
    1,910
    Like
    11
    Thanked 60 Times in 50 Posts
    Quote Được gửi bởi 0odragonking View Post
    Quá dễ:

    Var
    A,T : string;
    i,j,n :integer;

    Begin
    Write('Viet ra day so A : '); Readln(A);
    n:=length(A);
    Writeln('Nhung day so hoan vi: ');
    For i:=1 to n do
    for j:=n to 2 do
    Begin
    T[1]:=A[j];
    A[j-1]:=A[j];
    A[j]:=T[i];
    Write(A,' ');
    End;
    Readln;
    END.
    Chắc rớt quá

  4. #4
    Tham gia
    07-01-2009
    Location
    Khánh Hoà
    Bài viết
    40
    Like
    0
    Thanked 1 Time in 1 Post
    0odragonking làm sai rồi. Bài này phải dùng giải thuật quay lui chứ không đơn giản đâu!!

  5. #5
    Tham gia
    13-10-2008
    Bài viết
    12
    Like
    0
    Thanked 0 Times in 0 Posts

    Tệ thật !

    Quote Được gửi bởi truongmaitrang View Post
    0odragonking làm sai rồi. Bài này phải dùng giải thuật quay lui chứ không đơn giản đâu!!
    Ai bảo là sai! Quay ngược hay xuôi cung thế thôi. Chỉ là khi viết ra kết quả là thứ tự của hai cách ngược nhau thôi. Không biết rõ đừng nói lung tung!

  6. #6
    Tham gia
    11-02-2009
    Location
    Quên rồi.
    Bài viết
    44
    Like
    0
    Thanked 0 Times in 0 Posts
    for i:= 1 to 10000000 do writeln('Po'' tay');

  7. #7
    Tham gia
    31-08-2002
    Location
    Trái đất
    Bài viết
    1,910
    Like
    11
    Thanked 60 Times in 50 Posts
    Quote Được gửi bởi 0odragonking View Post
    Ai bảo là sai! Quay ngược hay xuôi cung thế thôi. Chỉ là khi viết ra kết quả là thứ tự của hai cách ngược nhau thôi. Không biết rõ đừng nói lung tung!
    Thì tôi đã bảo là ông rớt chắc mà.
    Giả sử cho n=100 có 99 chữ a và 1 chữ thì đưa cái mã đó lên chạy chừng nào mới xong?

  8. #8
    Tham gia
    07-01-2009
    Location
    Khánh Hoà
    Bài viết
    40
    Like
    0
    Thanked 1 Time in 1 Post
    Bài này thì sao?
    Cho 2 đa thức khác đa thức 0. VCT nhân 2 đa thức này.

  9. #9
    Tham gia
    21-02-2009
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts
    bài này cũng đơn giản thôi bạn àh.Dùng thủ thuật đệ quy quay lui.Ta cho 1 vòng lặp chạy từ j:=1----> N,sau đó đánh dấu những phần tử đã chọn rồi lưu vào mảng chứa nghiệm sau đó gọi Try(i+1).Chúc bạn thành công.
    Code:
    Var
    A:Array [1..100] of integer;
    B:Array [1..100] of integer;
    n:integer;
    Procedure Xuat;
    Var
    j:integer;
    Begin
    For j:=1 to n do
    Write(A[j]);
    writeln;
    End;
    Procedure Try(i:integer);
    Var
    j:integer;
    Begin
    if i>n then xuat
    Else
    Begin
    For j:=1 to n do

    BEgin
    If B[j]=0 then
    Begin
    B[j]:=1;
    A[i]:=j;
    Try(i+1);
    B[j]:=0;
    End;
    end;
    end;
    end;
    Begin
    Readln(n);
    Try(1);
    Readln;
    End.

  10. #10
    Tham gia
    13-12-2008
    Location
    Vũng Tàu
    Bài viết
    393
    Like
    0
    Thanked 2 Times in 2 Posts
    Code:
    const fi='hoanvi.inp';
          fo='hoanvi.out';
    var   f:text;
          i,n:byte;
          x:array[1..20] of byte;
          dd:array[1..20] of boolean;
    procedure nhap;
    begin
       assign(f,fi);
       reset(f);
       readln(f,n);
       close(f);
    end;
    procedure inkq;
    begin
      for i:=1 to n do
          write(f,x[i]);
      writeln(f);
    end;
    procedure try(i:byte);
    var j:byte;
    begin
      for j:=1 to n do
        if not dd[j] then
          begin
            x[i]:=j;
            dd[j]:=true;
            if i=n then inkq
            else try(i+1);
            dd[j]:=false;
          end;
    end;
    procedure xuli;
    begin
      nhap;
      fillchar(dd,sizeof(f),false);
      assign(f,fo);
      rewrite(f);
      try(1);
      close(f);
    end;
    begin
      nhap;
      xuli;
    end.
    Được sửa bởi hang_vt lúc 21:53 ngày 07-03-2009

Trang 1 / 4 1234 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • 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
  •