每天學習一點程式設計(11)(輸出乙個序列的所有子集)

2021-06-22 05:04:41 字數 915 閱讀 2517

輸出乙個序列的所有子集。

思路一:遞迴

#include #define n 10

using namespace std;

void all_subset(int *arr, int size, int *judge, int depth)

else }

int main()

; int size = sizeof(s) / sizeof(int);

int judge[n] = ;

all_subset(s, size, judge, 0);

system("pause");

return 0;

}

這是我在網上看到的一種用遞迴的思路,,希望找到更好的方法來解決。

思路2:我們知道乙個集合的子集的個數就等於其所有組合之和,即任選1個元素的集合個數+任選2個元素的集合個數+任選3個元素的集合個數+......+任選n個元素的集合個數,最後結果呢是2的n次方個。既然是2的n次方,我們就可以用二進位制位表示,如果某位為1,則表示這個集合中含有這一位所代表的元素。例如,當i = 5時, j = i = 5,那麼j = 0101; 我們對應的輸出 a[0], a[2], 這個過程在while迴圈中完成)

#include using namespace std;

void all_subset(int *arr, int size)

cout << endl; }}

int main()

; int size = sizeof(s) / sizeof(int);

all_subset(s, size);

system("pause");

return 0;

}

持續更新中······

每天學習一點 Android

每天都變著花樣的學東西,今天呢,看了看android教程和一些android開 壇,先了解一下皮毛,再決定到底怎麼學習。anoid早期由 android之父 之稱的andy rubin創辦,google於2005年併購了成立僅22個月的高科技企業android,展開了簡訊 手機檢索 定位等業務,基於...

每天學習一點string h

面試中總會遇到實現類似strcpy,strlen功能的程式,所以需要注意積累,每天學習乙個函式!第一天,strcpy 方案一 char mystrcpy char strdes,const char strsrc 方案二 char mystrcpy char strdes,const char st...

每天學習一點程式設計(13)(字串壓縮)

通過鍵盤輸入一串小寫字母 a z 組成的字串。請編寫乙個字串壓縮程式,將字串中連續出席的重複字母進行壓縮,並輸出壓縮後的字串。壓縮規則 1.僅壓縮連續重複出現的字元。比如字串 abcbc 由於無連續重複字元,壓縮後的字串還是 abcbc 2.壓縮欄位的格式為 字元重複的次數 字元 例如 字串 yyy...