關於任一陣列的組合問題

2021-04-25 23:02:57 字數 1211 閱讀 5156

任意給一陣列,如 

再任意給乙個值,如35. 

請從上面的陣列中找出所有的組合,使他們的和等於35. 

例如對於上面的陣列,所有的組合情況為: 

35; 

-10+45; 

17+18; 

6+9+20; 

-10+35+10; 

-10+17+18+10; 

-10+6+9+20+10; 

注意,每一種組合中乙個數只能出現一次。

#include

#include

int num_n(int n);

int main()

int length,i,j,sum=0,num=0,m,give,k,h,n,r=0;

printf("輸入陣列長度/n");

scanf("%d",&length);

printf("輸入要對比的數/n");

scanf("%d",&give);

int *array=(int*)malloc(length*sizeof(int));

for(i=0;iprintf("輸入陣列元素array[%d]=",i);

scanf("%d",array+i);

for(i=0;iprintf("現在陣列中array[%d]=%d/n",i,array[i]);

int *p,*q;

q=p=(int*)malloc(length*sizeof(int));

for(i=0;i*(p+i)=0;

for(i=0;iprintf("現在元素表示p[%d]=%d/n",i,p[i]);

num=num_n(length);

for(i=1;i<=num;i++)

m=i;

for(j=1;j<=length;j++)

k=m%2;

if(k==1)

sum+=array[j-1];

m=m/2;

if(sum==give)

int a=i;

for(j=1;j<=length;j++)

k=a%2;

printf("%d/t",k);

a=a/2;

printf("/n");

sum=0;

int num_n(int n)

if(n==1) return 2;

else return 2*num_n(n-1);

產生隨機小數 如果取到小數區間內的任一數字?

一位粉絲的需求,如果根據左側的小數區間,返回區間內的隨機小數?excel中存在兩個隨機函式,一是randbetween,但其返回的是隨機整數,而不是小數 二是rand函式,返回0 1之間的隨機小數,兩者都無法直接產生需求的結果。既然是隨機,就必須得結合隨機函式。方法一,化小數為整數,再利用randb...

整數陣列的組合問題

2015年9月16日,美團南京站南京郵電大學筆試題目之一。大致的題意是這樣的 有乙個元素各不相同的整數陣列,輸入元素的所有組合,長度由大到小。例如 1,2,3,4 依次輸出1234,123,134,234,12,13,14,23,24,1,2,3,4 思路 1 設輸出的組合的長度為m m n 2 把...

資料結構(一) 陣列的操作

最近開始學習資料結構,覺得這門課蠻重要的,不論是刷題還是寫安卓,資料結構還是要學好的,學習資料結構,我還是用c語言來實現,好理解一點。資料結構中最基本的乙個結構就是線性結構,而線性結構又分為連續儲存結構和離散儲存結構。所謂的連續儲存結構其實就是陣列。陣列本質其實也是資料的一種儲存方式,既然有了資料的...