Mình không hiểu dòng if (!(i & (1<<j))). Mong mọi người giải thích cho mình.
#include<bits/stdc++.h>
using namespace std;
int n;
int a[21];
int main(){
cin >> n;
for(int i=0; i<n; i++) cin >> a[i];
for(int i=0; i < (1<<n); i++){
for(int j=0; j < n; j++)
if (!(i & (1<<j))) // dòng này
cout<<a[j]<<" ";
cout<<"\n";
}
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?