Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: kiểm tra a[k] có là tổng của các số trong dãy

  1. #1
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà Nội
    Bài viết
    361

    Mặc định kiểm tra a[k] có là tổng của các số trong dãy

    Bài toán như ví dụ như sau
    int a[10]={3,7,9,10,17,19,20,100,1,55};
    ta thấy có 20 là tổng của 9 + 10 +1 ; 10 = 9+1 .
    Bài này là kiểm tra xem a[k] có là tổng của 2 hay nhiều phần tử (không trùng lặp ) trong dãy không .
    Bài này chắc phải dùng đệ quy , nhưng đây là bài toán của môn kỹ thuật lập trình của ngành viễn thông (kiến thức căn bản , chưa rờ đến đệ quy). Mà cách thông thường thì nghĩ mãi không ra.
    Nhờ các cao thủ bật mí cho 1 tí
    Blog tổng quan kiến thức về viễn thông : http://tongquanvienthong.blogspot.com/

    mSPDict từ điển android hỗ trợ liên kết tra trên các trình đọc sách điện tử và tra sách giấy thông qua camera
    http://www.tinhte.vn/threads/691731/

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    336

    greedy...
    sắp xếp mảng lại từ nhỏ tới lớn cho dễ phân tích.
    tại a[i] (i khác 0) bắt đầu lấy
    t = a[i] - a[i-1] rồi tiếp tục tìm số bé hơn t trong khoảng từ a[i-1] tới a[0], lặp tới khi t=0 (a[i] là tổng của 2 hoặc nhiều ptu khác) hoặc ko tìm thấy.
    Lặp lại bước trên với i giảm dần...

    ps: trong sách CTDL có 1 bài gần giống thế này giải bằng thuật toán A*...
    code ra gió bão

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn