Tin học Việt

A place for learning and sharing knowledge


    Nhờ mọi người chỉ giúp bài toán này

    Share

    Chuheokhaukhinh

    Posts : 2
    Golds : 4
    Liked : 0
    Ngày tham gia : 2012-10-26

    Nhờ mọi người chỉ giúp bài toán này

    Post by Chuheokhaukhinh on Fri Oct 26, 2012 6:14 pm

    Đổi chỗ
    Tìm số tự nhiên nhỏ nhất có chữ số hàng đơn vị là D, sao cho khi chuyển chữ số hàng đơn vị lên vị trí trước chữ số đầu tiên của số đó thì được số mới gấp K lần số cũ.
    • Dữ liệu vào: Nhập từ tệp MOVE.INP gồm 2 số nguyên D và K, các số cách nhau tối thiểu một dấu cách.
    • Kết quả: Ghi vào tệp MOVE.OUT số tìm được, hoặc -1 nếu không tìm được số thoả mãn.
    Ví dụ

    MOVE.INP
    7 5
    MOVE.OUT
    142857

    Mong các bạn chỉ giúp dùm cách làm + code nha. nghe nói bài này giải được theo phương thức quy hoạch động phải không các bạn. Mấy bạn chỉ giúp dùm dạng toán này. nếu các bạn có bài tập hay hướng dẩn giải mong các bạn cho link dùm :d

    Admin
    Admin
    Admin

    Posts : 48
    Golds : 2147483647
    Liked : 16
    Ngày tham gia : 2011-08-25
    Tuổi : 20
    Đến từ : Ho Chi Minh City

    Re: Nhờ mọi người chỉ giúp bài toán này

    Post by Admin on Sun Nov 04, 2012 7:15 pm

    Chuheokhaukhinh wrote:Đổi chỗ
    Tìm số tự nhiên nhỏ nhất có chữ số hàng đơn vị là D, sao cho khi chuyển chữ số hàng đơn vị lên vị trí trước chữ số đầu tiên của số đó thì được số mới gấp K lần số cũ.
    • Dữ liệu vào: Nhập từ tệp MOVE.INP gồm 2 số nguyên D và K, các số cách nhau tối thiểu một dấu cách.
    • Kết quả: Ghi vào tệp MOVE.OUT số tìm được, hoặc -1 nếu không tìm được số thoả mãn.
    Ví dụ

    MOVE.INP
    7 5
    MOVE.OUT
    142857

    Mong các bạn chỉ giúp dùm cách làm + code nha. nghe nói bài này giải được theo phương thức quy hoạch động phải không các bạn. Mấy bạn chỉ giúp dùm dạng toán này. nếu các bạn có bài tập hay hướng dẩn giải mong các bạn cho link dùm :d

    Bài này bạn có thể làm như sau:
    - Đầu tiên bạn cho số hàng đơn vị là D
    - Sau đó lấy K*D, viết kq hàng đơn vị của số đó
    - Tiếp tục lấy K nhân với số vừa tìm được cộng với phần hàng chục của số lúc nãy
    - Ta được đáp án khi gặp D.

    Ví dụ: Ở bài trên, ta có D=7 và K=5.
    Bđ: ***********7
    B1: **********57 (5*7=35 viết 5 nhớ 3)
    B2: *********857 (5*5=25+3=28 viết 8 nhớ 2)
    B3: ********2857 (5*8=40+2=42 viết 2 nhớ 4)
    B4: *******42857 (5*2=10+4=14 viết 4 nhớ 1)
    B5: ******142857 (5*4=20+1=21 viết 1 nhớ 2)
    B6: *****7142857 (5*1=5+2=7 viết 7) => gặp D => dừng lại.

      Current date/time is Tue Dec 06, 2016 3:39 am