二进制法生成1-n的子集
生活随笔
收集整理的這篇文章主要介紹了
二进制法生成1-n的子集
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
先上代碼:
#include<iostream> using namespace std;void print_subset(int n, int s){for(int i=0;i<n;i++)if(s&(1<<i)){printf("%d",i);} printf("\n");} int main(){int n;cin>>n; for(int i=0;i<(1<<n);i++){print_subset(n,i);if(i!=0)cout<<"#num:"<<i<<endl;} }列一下表
子集是和上面這些數(shù)比的,輸出的話輸出的是i
——————————
s:11(3)
與之做&操作的二進(jìn)制數(shù): 1 ,10(1<< i,i=0,1)
1(i=0),10 (i=1)
因此當(dāng)s為3時 輸出01
——————————
那么看一下main函數(shù)中的循環(huán),i從0到3循環(huán),依次輸出:
s:0 輸出:換行
s:1 輸出:0
s:2 輸出; 1
s:3 輸出:01
上面說打印(0,1,2.。。。n-1)的子集:
如果打印(1,。。。,n),只需輸出i+1
總結(jié)
以上是生活随笔為你收集整理的二进制法生成1-n的子集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: arduino智能风扇系统
- 下一篇: markdown改字体和背景颜色(htm