Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    bài tập về mảng .

    cho 1 mảng cho trước các phần tử . nhập vào 1 số . xác định số đó là tổng của những phần tử nào của mảng kia .

    tớ nghĩ hoài không ra :-S ai chỉ giúp tớ thuật toán bài này với :-S

    VD : arr[10,34,5,7,34,3,90];
    n = 25.

    n là tổng của arr[0], arr[2],arr[3],arr[5];

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Của bạn đây, có thể có nhiều kết quả nhưng bài này chỉ đưa ra 1 kết quả thôi

    Mã nguồn PHP:
    #include<iostream.h> #include<conio.h> void main() { int n,i,a[50],tong=0; cout<<"Nhap n:";cin>>n; for (i=1;i<=n;i++) { cout<<"Nhap a["<<i<<"]="; cin>>a[i]; tong+=a[i]; } int s; cout<<"Nhap s:";cin>>s; int b[50]; for (i=1;i<=tong;i++) b[i]=0; b[0]=1; int st,k,j; i=1; while (i<=n) { st=a[i]; j=1; k=i; while (j<=n-i+1) { b[st]=k; st=st+a[k+1]; j++; k++; } i++; } int t=s; if (b[s]!=0) { cout<<"Co day con co tong bang s:"<<endl; i=0; while (t>0) { t=t-a[b[s]-i]; cout<<"vitri: "<<b[s]-i<<" "<<"Gia tri: "<<a[b[s]-i]<<endl; i++; } } else cout<<"Khong co"<<endl; getch(); }  

  3. #3
    Đây chính là bài Subset Sum nổi tiếng hóc búa [IMG]images/smilies/laughing.gif[/IMG].

  4. #4
    Muốn đưa ra nhiều kết quả thì ta chỉ cần cải tiến thuật toán của bạn iloveit1208 là được.

    ý tưởng của nó là dùng đệ quy
    Mối lần duyệt ( quét bộ dữ liệu ) ta lấy sum trừ đi số ta đân duyệt ( a [i] )

    rồi gọi lại bài toán

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •