bài tập dạng xâu (khó)

Thảo luận trong 'Tin học cấp III' bắt đầu bởi nguyenhoanghai9d@gmail.com, 17 Tháng ba 2017.

Lượt xem: 205

  1. nguyenhoanghai9d@gmail.com

    nguyenhoanghai9d@gmail.com Học sinh mới Thành viên

    Tham gia ngày:
    10 Tháng mười hai 2015
    Bài viết:
    13
    Đã được thích:
    3
    Điểm thành tích:
    21
    Sở hữu bí kíp ĐỖ ĐẠI HỌC ít nhất 24đ - Đặt chỗ ngay!

    [27/6 mở bình chọn] Cuộc thi Tìm kiếm Mr & Miss HMF



    Hàm xoay ngược R(x) của một số nguyên x được xác định bằng cách viết các chữ số của x theo thứ tự ngược lại. Ví dụ R(23)=32; R(101)=101;
    Yêu cầu: Cho một số số nguyên dương. Với mỗi số nguyên dương đã cho hãy xác định có tồn tại một số x nào đó để số này có thể biểu diễn được dưới dạng x+R(x) hay không?
    Dữ liệu: Vào từ file BAI1.INP file chứa không quá 10000 số nguyên mỗi số trên một dòng mỗi dòng không quá 10000 chữ số.
    Kết quả: Đưa ta tệp BAI1.OUT với mỗi số nguyên từ input đưa ra thông báo YES khi tồn tại x hoặc NO nếu ngược lại.
    Ví dụ:
    1 | NO
    2 | YES
    11 | YES
    14003 | YES
    76751345649789456166547987979741366664879441 | NO
     
  2. huutoan00

    huutoan00 Học sinh chăm học Thành viên

    Tham gia ngày:
    19 Tháng hai 2012
    Bài viết:
    176
    Đã được thích:
    56
    Điểm thành tích:
    131
    Giới tính:
    Nam
    bài này tới 10k chữ số, khó có thể lưu vào xâu dc,
    dùng mảng lưu từng chữ số thì mới dc
     
  3. nguyenhoanghai9d@gmail.com

    nguyenhoanghai9d@gmail.com Học sinh mới Thành viên

    Tham gia ngày:
    10 Tháng mười hai 2015
    Bài viết:
    13
    Đã được thích:
    3
    Điểm thành tích:
    21
    dùng xâu ansistring bạn à dùng mảng thì chắc chắn không được bạn nhá
     
    Vuio thích bài này.
  4. Vuio

    Vuio Học sinh chăm học Thành viên

    Tham gia ngày:
    27 Tháng hai 2017
    Bài viết:
    12
    Đã được thích:
    9
    Điểm thành tích:
    56
    Giới tính:
    Nam
    Free pascal dùng mảng 2 000 000 000 (2 tỉ) byte vẫn cho nhé.
    Dùng ansistring có vẻ khó sử dụng hơn mảng đối với những bạn chưa quen
     
  5. nguyenhoanghai9d@gmail.com

    nguyenhoanghai9d@gmail.com Học sinh mới Thành viên

    Tham gia ngày:
    10 Tháng mười hai 2015
    Bài viết:
    13
    Đã được thích:
    3
    Điểm thành tích:
    21
    Nhưng quan trọng là xử lí từng chữ số của mảng và tốc độ chạy của chương trình nữa bạn à
     
  6. huutoan00

    huutoan00 Học sinh chăm học Thành viên

    Tham gia ngày:
    19 Tháng hai 2012
    Bài viết:
    176
    Đã được thích:
    56
    Điểm thành tích:
    131
    Giới tính:
    Nam
    với lại bài này số lớn quá, nên mình đang nghĩ xem tính chất của những số có thể có x là gì,
    nếu dùng quy hoạch động, thì chắc chắn vượt thời gian
     
    Nguyễn Thánh Tiền thích bài này.
  7. Nguyễn Thánh Tiền

    Nguyễn Thánh Tiền TMod Tin học Thành viên BQT

    Tham gia ngày:
    2 Tháng mười 2010
    Bài viết:
    1,654
    Đã được thích:
    410
    Điểm thành tích:
    271
    Giới tính:
    Nam
    Anh nghĩ thế này không biết đúng sai

    1 chữ số chia hết cho 2 2 chữ số phải chia hết cho 11 , 3 chữ số phải chia hết 101, 4 chữ số chia HẾT 1001
     
    Vuio thích bài này.
  8. huutoan00

    huutoan00 Học sinh chăm học Thành viên

    Tham gia ngày:
    19 Tháng hai 2012
    Bài viết:
    176
    Đã được thích:
    56
    Điểm thành tích:
    131
    Giới tính:
    Nam
    em nghĩ ở giữa không đơn thuần chỉ là 0, có thể nó sẽ chia hết cho những số đối xứng
     
  9. Nguyễn Thánh Tiền

    Nguyễn Thánh Tiền TMod Tin học Thành viên BQT

    Tham gia ngày:
    2 Tháng mười 2010
    Bài viết:
    1,654
    Đã được thích:
    410
    Điểm thành tích:
    271
    Giới tính:
    Nam
    thế thì khoai đấy. . Có cách nào cải tiến không nhỉ
     
    leminhnghia1 thích bài này.
  10. huutoan00

    huutoan00 Học sinh chăm học Thành viên

    Tham gia ngày:
    19 Tháng hai 2012
    Bài viết:
    176
    Đã được thích:
    56
    Điểm thành tích:
    131
    Giới tính:
    Nam
    nêu như số được tạo từ 2 số đối xứng, thì các vị trí đối xứng nhau sẽ có cùng đơn vị, nếu có khác thì cũng chỉ là do cộng có nhớ(max là 1) thôi
     
  11. nguyenhoanghai9d@gmail.com

    nguyenhoanghai9d@gmail.com Học sinh mới Thành viên

    Tham gia ngày:
    10 Tháng mười hai 2015
    Bài viết:
    13
    Đã được thích:
    3
    Điểm thành tích:
    21
    nói tóm lại là thuật toán giải thế nào vậy bạn T_T
     
  12. Vuio

    Vuio Học sinh chăm học Thành viên

    Tham gia ngày:
    27 Tháng hai 2017
    Bài viết:
    12
    Đã được thích:
    9
    Điểm thành tích:
    56
    Giới tính:
    Nam
    @1 chữ số
    a=a
    => Số đó phải chia hết cho 2

    @2 chữ số
    ab+ba=10a+b+10b+a=11a+11b=11(a+b)
    => Số đó phải chia hết cho 11

    @3 chữ số
    abc+cba=100a+10b+c+100c+10b+a=101a+20b+101c=101(a+c)+10(b+b)
    => Số đó phải bằng tổng số chia hết cho 101 và 10

    @4 chữ số
    abcd+dcba=1000a+100b+10c+d+1000d+100c+10b+a=1001a+110b+110c+1001d=1001(a+d)+110(b+c)
    => Số đó phải bằng tổng số chia hết cho 1001 và 110

    Theo mình thì cứ làm case of thôi, kiểu như tìm số chữ số rồi xử lí riêng.
    Case <số chữ số> of
    1: If x mod 2=0 then true;
    2: ...
    3: ...
    4: ...
    ...
    end;
     
  13. nguyenhoanghai9d@gmail.com

    nguyenhoanghai9d@gmail.com Học sinh mới Thành viên

    Tham gia ngày:
    10 Tháng mười hai 2015
    Bài viết:
    13
    Đã được thích:
    3
    Điểm thành tích:
    21
    làm như bạn thì 10000 chữ số tính đến năm sau bạn à :v
     
    huutoan00 thích bài này.
  14. huutoan00

    huutoan00 Học sinh chăm học Thành viên

    Tham gia ngày:
    19 Tháng hai 2012
    Bài viết:
    176
    Đã được thích:
    56
    Điểm thành tích:
    131
    Giới tính:
    Nam
    theo mình thì tính hiệu của các vị trí đối xứng nhau (xét trừ TH 1xxxxxxxxx, vì 1 đó có thể là do cộng có nhớ)
    nếu các hiệu đó luôn trong khoảng -1..1 thì được?
     
  15. Nguyễn Thánh Tiền

    Nguyễn Thánh Tiền TMod Tin học Thành viên BQT

    Tham gia ngày:
    2 Tháng mười 2010
    Bài viết:
    1,654
    Đã được thích:
    410
    Điểm thành tích:
    271
    Giới tính:
    Nam
    Anh không hiểu
    203 chắc đc không chú
     

CHIA SẺ TRANG NÀY