當前位置:首頁 » 編程語言 » c語言排列組合

c語言排列組合

發布時間: 2022-01-23 06:08:43

『壹』 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語言編寫一個排列組合的程序

三個for循環就可以搞定,我電腦馬上沒有電了,現在來不及給你寫出完成程序,明天起床還沒有人回答你我再給你寫出來

『叄』 C語言矩陣的排列組合

#include<stdio.h>
intmain()
{
intm,i,j,n;
scanf("%d",&m);
for(i=1;i<=10000;i++)
{
n=m;
for(j=i-1;j>=1;j--)//因子之和
{
if(i%j==0)
n=n-j;
}
if(n==0)printf("%d ",i);
}

system("pause");
return0;
}

『肆』 用c語言怎麼實現排列組合啊比如從100個數裡面任意選出5個數,即C100 5……

#include<stdio.h>
void main()
{
int n = 100;
int m = 5;
int n1 = 1, m1 = 1;
for(int i = 1; i <= m; i++)
{
n1 *= n - i + 1;
m1 *= i;
}
n1 = n1/m1;
printf("C100 5 = %d\n",n1);
}
從n中選出m個,只要改變n和m的值即可,VS2010下測試通過。

『伍』 C語言 排列組合

發個C#的代碼:

int[] a = { 1 , 2 , 3 , 4 , 5 , 6 };
int weishu = 6;

int weishu2 = weishu - 1;
int zuida = (int)Math.Pow( 2 , weishu2 );
List<int[]> list = new List<int[]>();
for ( int i = 0 ; i < zuida ; i++ )
{
int[] b = (int[])a.Clone();
for ( int j = 0 ; j < weishu2 ; j++ )
{
int c = i >> j;
if ( (c & 1) == 1 )
{
int tmp = b[ j ];
b[ j ] = b[ j + 1 ];
b[ j + 1 ] = tmp;
}
}
list.Add( b );
}

System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.AppendLine( string.Format( "共 {0} 個結果" , list.Count ) );
foreach ( int[] aa in list )
{
for ( int i = 0 ; i < aa.Length ; i++ )
{
sb.Append( aa[ i ] );
if ( (i & 1) == 1 )
sb.Append( '\t' );
}
sb.AppendLine();
}
Console.WriteLine( sb.ToString() );

運行結果:

共 32 個結果
12 34 56
21 34 56
13 24 56
23 14 56
12 43 56
21 43 56
13 42 56
23 41 56
12 35 46
21 35 46
13 25 46
23 15 46
12 45 36
21 45 36
13 45 26
23 45 16
12 34 65
21 34 65
13 24 65
23 14 65
12 43 65
21 43 65
13 42 65
23 41 65
12 35 64
21 35 64
13 25 64
23 15 64
12 45 63
21 45 63
13 45 62
23 45 61

『陸』 C語言 排列組合程序

shi 是用C來編程嗎

『柒』 C語言如何實現任意數排列組合,新手求助,急

  1. 求排列組合沒有簡單方法。方法只有一個,枚舉。

  2. 有幾個位置需要列舉,就需要幾個循環。如果循環數量太多,可以用函數遞歸來枚舉。

    常式:

    #include<stdio.h>
    intmain(){
    inta[4]={1,3,4,7};//第一個位置
    intb[4]={2,5,8,10};//第二個位置
    intc[4]={6,9,11,12};//第三個位置
    inti,j,k;
    for(i=0;i<4;i++)
    for(j=0;j<4;j++)
    for(k=0;k<4;k++)
    printf("%d%d%d ,",a[i],b[j],c[k]);//輸出一種排列
    getch();
    return0;
    }

『捌』 c語言有什麼快速的函數可以表示排列組合嗎

#include<stdio.h>
intcom(intm,intn)//m中取n個
{
inti,j,sum=1;
for(i=m,j=0;j<n;j++,i--)
{
sum=sum*i/(j+1);
}
returnsum;
}
intmain()
{
inti;
i=com(5,3);
printf("%d",i);
return0;
}

『玖』 C語言:循環結構(排列組合)

#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
for (int i=n;i<=n+3;i++)
{
for (int j=n;j<=n+3;j++)
{
if(i==j) continue;
for (int k=n;k<=n+3;k++)
{
if(i==k||j==k) continue;
printf("%d%d%d ",i,j,k);
}
}
}
printf("\n");
return 0;
}

『拾』 C語言的一個排列組合問題

#include<stdio.h>
void main()
{
int a=1,b=2,c=3,d=4,e=5;
int i,j,k,l,sum=15,n=0;

for(i=2;i<6;i++)
for(j=1;j<6;j++)
if(j!=2)
for(k=1;j<6;j++)
if(j!=3)
for(l=1;l<6;l++)
if(i!=j&&i!=k&&i!=l&&i!=(sum-i-j-k-l))
if(j!=k&&j!=l&&j!=(sum-i-j-k-l))
if(k!=l&&k!=(sum-i-j-k-l)&&l!=(sum-i-j-k-l))
{
printf("甲%d\t乙%d\t丙%d\t丁%d\t戊%d\n\n",i,j,k,l,sum-i-j-k-l);
n++;}
printf("有%d中排列組合名,詳見如上圖:\n",n);

}
貌似我的最清新明了 2樓的出現的是一串數字,一行

熱點內容
微信如何評論圖片安卓 發布:2024-11-14 11:56:34 瀏覽:848
游戲遍地腳本 發布:2024-11-14 11:56:32 瀏覽:759
怎樣編譯一個背單詞系統 發布:2024-11-14 11:54:47 瀏覽:176
傳奇這個配置怎麼樣 發布:2024-11-14 11:48:25 瀏覽:376
配置橫向防火牆是什麼意思 發布:2024-11-14 11:42:34 瀏覽:731
手機緩存文件能打開嗎 發布:2024-11-14 11:41:00 瀏覽:492
存儲系統集成 發布:2024-11-14 11:14:54 瀏覽:584
雲伺服器搭建方法圖解 發布:2024-11-14 11:14:53 瀏覽:309
挑戰伺服器吃雞是什麼 發布:2024-11-14 10:59:07 瀏覽:932
自繳社保演算法 發布:2024-11-14 10:43:53 瀏覽:554