陣列部分之和問題

2021-06-18 00:24:41 字數 1798 閱讀 2272

乙個集合x有都不相同的n個元素,使用這個集合中的不定個數的元素,組成乙個和為s的序列,求出所有符合的序列,元素可以重複使用,只要元素的個數相同不考慮順序。

比如集合是x=; n=5, s=12可以得出以下的序列:

2       2       2       2       2       2

2       2       2       2       4

2       2       2       3       3

2       2       3       5

2       2       4       4

2       3       3       4

2       3       7

2       5       5

3       3       3       3

3       4       5

4       4       4

5       7

#include #include using namespace std;  

int pushvector(int *x,int n,int s,vector&tablelist,int position)

else if(s==0)

int main(int argc, char** argv)

; int n =5;

int s=12;

findresult(x,n,s);

system("pause");

return 0;

}

#include #include using namespace std;

int pushvector(int *x,int n,int s,vector&tablelist,int position)

else if(s==0)

int main(int argc, char** argv)

; int n =5;

int s=12;

findresult(x,n,s);

system("pause");

return 0;

}

#include #include #include #include #include #define _debug 1

#define maxm 20

#define maxn 10

int arr[maxn];//數陣列

bool path[maxn][maxm+1];//路線

bool hashtable[maxm+1];//是否存在

int c;//記錄列印佇列大小

int v[maxm+1];//列印佇列,陣列大小最大為maxn+1,此時每個數為1

void printpath(int i,int j,int c)

printf("%d\n",v[0]);

return;

} assert(path[i][j]);

v[c++]=arr[i];//將元素加入到列印佇列中

for(int k=1;k<=i;k++)

c--;//將元素從列印佇列中刪除

}void solve(int size,int m)

} }for(i=1;i<=size;i++) }}

int main()

solve(n,m);

return 0;

}

網路部分之link layer

在100base x 中,使用 4b 5b encoding。這種編碼的特點是將欲傳送的資料流每4bit 作為乙個組,然後按照 4b 5b 編碼規則將其轉換成相應 5bit 碼。5bit 碼共有32 種組合,但只採用其中 的 16種對應 4bit 碼的16 種,其他的 16種或者未用或者用作控制碼,...

人件讀書筆記(20)整體大於部分之和

公司級目標至關重要,因為它對團隊而言意義非凡。目標自身對團隊成員來說可能有一定的隨機性,但大家可以竭力去追求目標的實現 相信員工都會自動認同組織的目標,只能說明管理上的盲目樂觀 然而到了底層這種設計就失效了 僅僅希望用所謂的 職業素質 來保證大家都向同乙個方向前進,這完全就是撞大運 建立這個系統是乙...

鍊錶部分之單鏈表

鍊錶類 class heronode override public string tostring 新增 有兩種方法,頭插法和尾插法,頭插法新增的第乙個元素為鍊錶的最後乙個,新增順序與鍊錶順序相反 尾插法新增順序與鍊錶順序一致。我覺得頭插法有點不好理解,特別是鍊錶反轉的時候 下面新增只寫了尾插法的...