當前位置:首頁 » 編程軟體 » 編程組合問題

編程組合問題

發布時間: 2023-02-26 17:14:54

c語言編程10選6全組合並且滿足6個數字和問題

代碼如下:

#include <stdio.h>


//要求六個數字相加的和

#define AIM 39


int main(){

int number[10]; //用來存放1到10

int su[6];

int i,sum,j=0,k,flag=1;

for(i=0;i<10;i++)

number[i]=i+1;

for(i=0;i<6;i++)

su[i]=0;

for(su[0]=0;su[0]<10;su[0]++)

for(su[1]=0;su[1]<10;su[1]++)

for(su[2]=0;su[2]<10;su[2]++)

for(su[3]=0;su[3]<10;su[3]++)

for(su[4]=0;su[4]<10;su[4]++)

for(su[5]=0;su[5]<10;su[5]++)

{

//j++;

//printf("%d ",j);

sum=0;

for(i=0;i<6;i++)

sum+=number[su[i]];

//printf("%d ",sum);


//如果相加的和滿足要求則輸出組合

if(sum==AIM){

//判斷六個數字之中是否有重復的,並且排除排列順序不同的組合

for(k=0;k<6;k++)

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

if(number[su[i]]<=number[su[k]])

flag=0;

if(flag==1){

for(i=0;i<6;i++)

printf("%d ",number[su[i]]);

j++;

printf(" ");

}

flag=1;

}

}

printf("總共有%d個滿足要求的組合 ",j);

return 0;


}

其中宏定義#define AIM後面的數字為需要的總和

本代碼選出的組合中數字不能重復

和為39的組合運行結果如下:

java最優組合編程問題

沒人回答是因為這個沒有現成代碼,大夥兒也不願意為了一個問題真的去寫
我說一下思路把
1、創建一個map,存儲每個點可以合作的點集,如
HashMap<String,List<String>> hp = new ...
hp.add("A", new ArrayList<String>[]{"B", "E", "F", "G"});
b
c..都這么建一遍
2、建一個Stack,按照規則1,把每種排列都枚舉出來
3、把所有結果按照個數排序

⑶ c語言編程的排列組合問題

程序有一些亂,實在不知道你要做什麼。
你要說排列組合吧,還有好多重復的,怎麼沒完沒了了呢?


請說得更仔細一些好嗎?

⑷ c語言編程排列組合

void Show(int n,int len ,char str[], char p[],int *i){/*函數功能說明: 密碼窮舉法 遞歸演算法參數說明:len 密碼可選元素的個數,實際等於 strlen(str); n 密碼位數。 STR[]密碼表。 *p 密碼排列組合的臨時存檔*/int a;n--;for(a=0; a < len; a++){p[n]=str[a]; if(n==0)printf("%d:%s ",(*i)++,p); if(n0)Show(n,len , str,p,i);}} /*驅動程序 用於測試*/ int main(void){char str[]="abcdef";//密碼表 可選元素集合可根據選擇修改 int n=4;//密碼位數,根據具體應用而定。 int len=strlen(str);//用於密碼元素集合計數。 char p[20];//存放排列組合的密碼,用於輸出。 int num=0;//存放統計個數的整數值, int *i=&num;//計數器 地址。 p[n]='\0';//這個不用說啦。 printf("\n%d 位密碼,每個密碼有%d個選擇的話,共有:%d個組合。\n",n,len,*i);return 0;}
以上回答你滿意么?

⑸ C語言編程求解一個排列組合問題。急!

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

void process(int *,int,int);
char *s;
int size;
void main(void)
{
int n, m;
printf("Please enter n and m:");
scanf("%d%d",&n,&m);

while(n<m|| n>9)
{
if(n>9) printf("N must less than 10\n");
else printf("N must greate or equal M\n");
printf("Please enter n and m:");

scanf("%d%d",&n,&m);
}
int *p=new int[n];
s=new char[n+1];
s[0]='\0';
for(int i=0;i<n;i++)
{
p[i]=i+1;
}
process(p,m,n);
system("pause");
}

void process(int * p,int m,int n)
{

if(m==0)
{
printf("\n");

return;
}
for(int i=0;i<n;i++)
{
if(p[i]!=0){

printf("%d",p[i]);
size=strlen(s);
s[size++]=p[i]+'0';
s[size]='\0';
p[i]=0;
process(p,m-1,n);
p[i]=i+1;
size=strlen(s);
if(size>0)s[--size]='\0';
if(size>0)
{
bool isprint=false;
for (int j=i+1;j<n;j++)
{
if(p[j]!=0){
{
isprint=true;
break;
}
}
}
if(isprint)printf("%s",s);
}

}

}

}

不要意思沒加註釋,要睡覺了。有什麼不明白的再追問吧。我要sleep了。呵呵。

不好意思沒看到最後一句等效的。看來我把問題做復雜了。呵呵。

下面的代碼是在上面的基礎上改的。有些亂了,不過運行還是沒問題的。

#include<stdio.h>
#include<stdlib.h>
#include <string.h>

void process(int *,int,int,int);
char *s;
int size;
void main(void)
{
int n, m;
printf("Please enter n and m:");
scanf("%d%d",&n,&m);

while(n<m|| n>9)
{
if(n>9) printf("N must less than 10\n");
else printf("N must greate or equal M\n");
printf("Please enter n and m:");

scanf("%d%d",&n,&m);
}
int *p=new int[n];
s=new char[n+1];
s[0]='\0';
for(int i=0;i<n;i++)
{
p[i]=i+1;
}
process(p,m,n,0);
system("pause");
}

void process(int * p,int m,int n,int start)
{

if(m==0)
{
printf("\n");

return;
}
for(int i=start;i<n-m+1;i++)
{
if(p[i]!=0){

printf("%d",p[i]);
size=strlen(s);
s[size++]=p[i]+'0';
s[size]='\0';
p[i]=0;
process(p,m-1,n,i+1);
p[i]=i+1;
size=strlen(s);
if(size>0)s[--size]='\0';
if(size>0)
{
int count=0;
bool isprint=false;
for (int j=i+1;j<n;j++)
{
if(p[j]!=0){
{
isprint=true;
count++;
}
}
}
if(count==0||count<m)isprint=false;
if(isprint)printf("%s",s);
else return;
}

}

}

}

⑹ 編程中排列組合的問題(4個數字中(數字范圍0-9),每3個為一組,允許數字重復使用,求所有組合)

從4個數字中取3個數,且能重復選用。所以每取一位都有4種選擇,共有4³=64個數

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:746
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1009
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:715
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:876
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:774
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1124
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:349
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:227
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:911
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:873