Trang 1/2 12 cuối
kết quả từ 1 tới 12 trên 16

Bài tập Pascal: Mọi người cho ý kiến giúp

  1. #1
    Ðến Từ
    Sóc Trăng
    Thành Viên Thứ: 289936
    Giới tính: Nam
    Bài gửi
    4

    Bài tập Pascal: Mọi người cho ý kiến giúp

    Trò chơi với băng số (Tên file Div.pas)
    Cho một băng số gồm n số nguyên dương, mỗi số được viết trên một ô. Hãy cắt băng số này thành nhiều đoạn nhất sao cho tổng các phần tử trong các đoạn là bằng nhau.
    Nhập vào : Từ bàn phím + Dòng đầu ghi n
    + Dòng tiếp theo ghi n số nguyên dương a1, a2, ..., an
    (các số nằm trên một dòng cách nhau bởi một dấu cách, ai ≤ 1000)
    In ra : màn hình Ghi K là số đoạn cần chia.

    10 2 6 2 5 2 1 2


    10

    2 6 2

    5 2 1 2


    Ví dụ:


    Nhập In ra Giải thích
    8
    10 2 6 2 5 2 1 2
    3
    Đoạn 1: 10
    Đoạn 2: 2 + 6 + 2 =10
    Đoạn 3: 5 + 2 + 1 + 2 = 10
    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
    7.385

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Đề bài này khó hiểu thế nhỉ, bạn cho vài ví dụ nữa đi. Ví dụ nhập 7 thì nó ra thế nào, mình chả tìm ra được
    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. #3
    Ðến Từ
    Hà Nội
    Thành Viên Thứ: 177479
    Giới tính: Nam
    Bài gửi
    5.683

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Mình đọc mà chả biết bạn đang viết cái gì luôn
    Hãy Support theo cách của bạn
    Hãy thank theo cách của tôi



  4. #4
    Ðến Từ
    Yên Bái
    Thành Viên Thứ: 235356
    Giới tính: Nam
    Bài gửi
    746

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    í tưởng
    khởi tạo mảng. nhập mảng. khởi tạo biến dem=1
    k=? . cho vòng lặp . 0 tới n-1 . nếu có phần tử nào = k thì in ra . xóa phần tử đó khỏi mảng. biến dem++
    tạo hàm tính tổng lần lượt 1 mảng.
    cho vòng lặp. từ 0 tới n-dem .tính tổng lần lượt
    vd. i=0. a0+a1 so sánh vs k . khác k tính tiếp a0+a1+a2 ...
    i=1. a1+a2 ...
    nếu bằng k im ra xóa phần tử khỏi mảng. bé hươn cộng tiếp.
    lớn hơn. a1+a2 > k bỏ qua a2. làm bước tính tiếp theo
    nếu ai lớn hơn k thì continue
    k biết code nó có tối ưu dc k . tại chưa có máy để test
    class TapLamHacker{ private String TráiTim;
    private void Set_TráiTim(String Gái){ this.TráiTim = "Thanh Trâm"; }
    public String Get_TráiTim(){ return "Thanh Trâm"; }
    public String ToString(){return"My love is Thanh Trâm For one future go shopping not concerned about price ";}
    } Liên hệ Skype: Taplamhacker

  5. 2 thành viên đã cảm ơn taplamhacker:


  6. #5
    Ðến Từ
    TP. Hồ Chí Minh
    Thành Viên Thứ: 178574
    Giới tính: Nam
    Bài gửi
    26.011

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Trích Nguyên văn bởi taplamhacker Xem bài viết
    í tưởng
    khởi tạo mảng. nhập mảng. khởi tạo biến dem=1
    k=? . cho vòng lặp . 0 tới n-1 . nếu có phần tử nào = k thì in ra . xóa phần tử đó khỏi mảng. biến dem++
    tạo hàm tính tổng lần lượt 1 mảng.
    cho vòng lặp. từ 0 tới n-dem .tính tổng lần lượt
    vd. i=0. a0+a1 so sánh vs k . khác k tính tiếp a0+a1+a2 ...
    i=1. a1+a2 ...
    nếu bằng k im ra xóa phần tử khỏi mảng. bé hươn cộng tiếp.
    lớn hơn. a1+a2 > k bỏ qua a2. làm bước tính tiếp theo
    nếu ai lớn hơn k thì continue
    k biết code nó có tối ưu dc k . tại chưa có máy để test
    1 Hacker diễn đàn cho biết ==
    Khách hãy nhấn nút "thanks" khi thấy bài viết hữu ích với bạn, cảm ơn










  7. #6
    Ðến Từ
    Sóc Trăng
    Thành Viên Thứ: 289936
    Giới tính: Nam
    Bài gửi
    4

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Trích Nguyên văn bởi quanltv Xem bài viết
    Đề bài này khó hiểu thế nhỉ, bạn cho vài ví dụ nữa đi. Ví dụ nhập 7 thì nó ra thế nào, mình chả tìm ra được
    Ví dụ: nhập vào 5 thì gồm 5 phần tử:
    Các phần tử cụ thể là: 1 2 3 4 5.
    THì chia thành 3 đoạn, mỗi đoạn có tổng bằng 5.
    Đoạn 1: 5
    Đoạn 2: 2 3.
    Đoạn 3: 1 4.

  8. #7
    Ðến Từ
    Sóc Trăng
    Thành Viên Thứ: 289936
    Giới tính: Nam
    Bài gửi
    4

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Không có ai cho ý kiến giúp mình nữa à, bó tay bày này rồi

  9. #8
    Ðến Từ
    Vĩnh Phúc
    Thành Viên Thứ: 291876
    Bài gửi
    5

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Theo mình thì sử dụng đệ quy. Nhưng sẽ khá là mất thời gian.

    Xét các trường hợp từ chia thành K= 2->N đoạn.

  10. #9

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    thuật toán của m như này nhưng ko biết có ổn ko.
    tìm max=số lớn nhất của dãy.
    gán i:=1;a:=0;dem:=0;
    repeat
    a:=a+số thứ i (tạm gọi :d[i]);inc(i);
    nếu a=max thì begin inc(dem);a:=0 end;
    nếu a>max thì begin max:=a;a:=0; i:=1;dem:=0 end;
    until i>n ;
    in ra kq là dem;

    đây là thuật toán dạng thô các bạn hoàn thành và test thử. nếu có nỗi bảo m để m xem lại.

  11. #10
    Ðến Từ
    TP. Hồ Chí Minh
    Thành Viên Thứ: 295901
    Bài gửi
    2

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Khó quá, mình mới học thôi

  12. #11
    Ðến Từ
    TP. Hồ Chí Minh
    Thành Viên Thứ: 295901
    Bài gửi
    2

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Thú vị quá hihihihi

  13. #12
    Ðến Từ
    Sóc Trăng
    Thành Viên Thứ: 289936
    Giới tính: Nam
    Bài gửi
    4

    Reply: Bài tập Pascal: Mọi người cho ý kiến giúp

    Trích Nguyên văn bởi chán Xem bài viết
    thuật toán của m như này nhưng ko biết có ổn ko.
    tìm max=số lớn nhất của dãy.
    gán i:=1;a:=0;dem:=0;
    repeat
    a:=a+số thứ i (tạm gọi :d[i]);inc(i);
    nếu a=max thì begin inc(dem);a:=0 end;
    nếu a>max thì begin max:=a;a:=0; i:=1;dem:=0 end;
    until i>n ;
    in ra kq là dem;

    đây là thuật toán dạng thô các bạn hoàn thành và test thử. nếu có nỗi bảo m để m xem lại.
    Để mình test thử. Thanks bạn!

Trang 1/2 12 cuối