- 这道题结合树状数组的lowbite 运算可得到答案
#include void show(int a,int n) { int i; int msk = 1<<n; for(i=0; i<n; i++){ printf((a & msk)? "1" : "0"); msk = msk >> 1; } printf("\n"); } void f(int n) { int i; int num = 1; for(i=0; i<n; i++) num = num<<1; int a = 0; for(i=0; i<num; i++){ show(a,n); if(i%2==0){ a = a ^ 1; } else{ a = a^((a&(-a))<<1) ; //填空 } } } int main() { f(4); return 0; }