kết quả từ 1 tới 5 trên 5

Có bác nào rành Pas cal và thuật toán chỉ giúp em bài này với

  1. #1
    Ðến Từ
    Tỉnh Khác
    Thành Viên Thứ: 169670
    Giới tính: Nam
    Bài gửi
    8

    Có bác nào rành Pas cal và thuật toán chỉ giúp em bài này với

    Từ 5 chữ số 1, 2, 3, 4, 5 ta lập ra tất cả các con số có đúng 5 chữ số. Các con số này được xếp theo thứ tự từ nhỏ đến lớn, con số nhỏ nhất là 11111 được đánh mã số 1; số kế tiếp là 11112 được đánh mã số 2; số kế tiếp 11113 được đánh mã số 3; tiếp tục cho đến hết các con số.
    Yêu cầu:
    Cho trước một số n có đúng 5 chữ số lấy từ các chữ số 1, 2, 3, 4, 5.
    a) Tìm số chữ số khác nhau của con số n.
    b) Tìm mã số của con số n.

    Dữ liệu: Vào từ file văn bản DL.INP
    - Gồm 1 dòng chứa số n
    Kết quả: Lưu vào file text KQ.OUT
    - Dòng đầu tiên chứa số chữ số khác nhau của số n.
    - Dòng thứ hai chứa mã số của con số n
    DL.INP KQ.OUT
    11121 2
    6
    Quick reply to this message Trả lời       


  2. #2
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 146858
    Giới tính: Nam
    Bài gửi
    6.863

    Reply: Có bác nào rành Pas cal và thuật toán chỉ giúp em bài này với

    Đếm số chữ số khác nhau của 1 dãy đặt tên là A (mảng 1 chiều)

    1. Tạo ra 1 mảng B chứa các chữ số khác nhau của dãy
    • Bước 1: đưa phần tử đầu tiên của A vào B
    • Xét từ phần tử thứ 2 của mảng A, tìm xem trong B đã có hay chưa (duyệt tất cả các phần tử), nếu chưa thì thêm vào, tăng độ dài của B lên 1. Nếu gặp 1 phần tử mà bằng luôn thì thoát ngay khỏi vòng lặp đó.
    • Cứ thế làm đến phần tử cuối của A
    2.Đếm các phần tử của B sẽ được dòng 1 của KQ.OUT

    (to be continue)
    Hãy nhấn nút Thank nếu thấy bài viết hữu ích
    Bộ sưu tập cực khủng

  3. 2 thành viên đã cảm ơn quanltv:


  4. #3
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 146858
    Giới tính: Nam
    Bài gửi
    6.863

    Reply: Có bác nào rành Pas cal và thuật toán chỉ giúp em bài này với

    Nếu đúng là các chữ số từ 1 đến 5, thì có thể quy về các số từ 0-4. Tạo ra hệ cơ số 5, đổi ra hệ 10 (thập phân) là ra số thứ tự ngay.

  5. Đã cảm ơn quanltv:


  6. #4
    Ðến Từ
    Tỉnh Khác
    Thành Viên Thứ: 169670
    Giới tính: Nam
    Bài gửi
    8

    Reply: Có bác nào rành Pas cal và thuật toán chỉ giúp em bài này với

    Cám ơn nhe anh quanltv

  7. #5
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 146858
    Giới tính: Nam
    Bài gửi
    6.863

    Reply: Có bác nào rành Pas cal và thuật toán chỉ giúp em bài này với

    Trích Nguyên văn bởi dothanhydhth Xem bài viết
    Cám ơn nhe anh quanltv
    Bài là đầy đủ cho bạn nhé.

    Mã:
    Program thanhydhth_11_02;
    Var f1,f2: text;
        a,b: array[1..10] of byte;
        n,vitri,luythua: word;
        m,i,j,dem: byte;
        check: boolean;
    
    
    BEGIN
      writeln('=================================');
    {Lay so n tu file}
      assign(f1,'C:\DL.INP');
      reset(f1);
      readln(f1,n);
      close(f1);
    
    
    {Tach so n thanh mang A co 5 phan tu}
      for i:=5 downto 1 do
      begin
        a[i]:=n mod 10;
        n:= n div 10;
      end;
    
    
    {Tao mang B chua cac phan tu khac nhau cua A}
      m:=1; b[1]:=a[1];
      for i:=2 to 5 do
      begin
        check:= true;
        for j:=1 to m do
          if a[i]=b[j] then begin check:= false; break; end;
        if check then begin m:=m+1; b[m]:=a[i]; end;
      end;
    
    
    {Dem so luong cua B}
      dem:=m;
      writeln('So cac phan tu khac nhau cua A = ',dem);
      readln;
    
    
    {Giam n di 111111 hay giam moi phan tu cua A di 1 don vi}
      for i:=1 to 5 do
        a[i]:=a[i]-1;
    
    
    {Doi he co 5 sang he thap phan}
      luythua:=1; vitri:=0;
      for i:=5 downto 1 do
      begin
        vitri:= vitri + a[i]*luythua;
        luythua:= luythua*5;
      end;
    
    
      vitri:= vitri+1;
      writeln('Vi tri cua so N = ',vitri);
      readln;
    
    
    {Dua ket qua ra file}
      assign(f2,'C:\KQ.OUT');
      rewrite(f2);
    
    
      writeln(f2,dem);
      writeln(f2,vitri);
    
    
      close(f2);
    
    
      writeln('Viec ghi du lieu ra file da hoan tat.');
      readln;
    END.