深基这本书地149页的一段代码看不懂 我已经用注释标注出来的,希望大佬帮忙解答解答。?
代码如下:
#include<cstdio>
#include<iostream>
using namespace std;
int a[30];
int main(){
int n,r;
cin>>n>>r;
for(int S=(1 <<n);S>=0;S--){//这里的1<<n 代表的是什么意思
int cnt=0;
for(int i=0;i<n;i++)
if(S & (1<<i))//这句话代表着的是什么意思
a[cnt++] =i;
if(cnt == r){
for(int i=r-1;i>=0;i--)
printf("%3d",n-a[i]);
put(" ");
}
}
}