當前位置:首頁 » 編程語言 » 4個數有多少組合c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

4個數有多少組合c語言

發布時間: 2022-09-19 00:43:54

❶ 我有四個數(如1,3,6,7)怎麼用c語言編寫:四個數所有排列組合

#include<stdio.h>

#include<stdlib.h>

voidswap(int&a,int&b)

{

inttemp=a;

a=b;

b=temp;

}

voidPermutation(int*pStr,intbegin,intend)

{

if(begin==end-1)//只剩一個元素

{

inti;

for(i=0;i<end;i++)//列印

printf("%d",pStr[i]);

printf(" ");

}

else

{

intk;

for(k=begin;k<end;k++)

{

swap(pStr[k],pStr[begin]);//交換兩個字元

Permutation(pStr,begin+1,end);

swap(pStr[k],pStr[begin]); //恢復

}

}

}

intmain()

{

inta[]={1,3,6,7};

Permutation(a,0,4);

getchar();

return0;

}

❷ 任意輸入4個不同的數,判斷這4個數最多可以組合成多少個數 c語言

/*Note:YourchoiceisCIDE*/

#include<stdio.h>

intmain(void)

{

inta[4]={1,2,0,4};

inti,j,k,l;

intb[64],t,n;

scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);

t=0;

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

{

b[t]=a[i];

t++;

if(a[i]==0)

continue;

for(j=0;j<4;j++)if(i!=j)

{

b[t]=a[i]*10+a[j];

t++;

for(k=0;k<4;k++)if(i!=k&&j!=k)

{

b[t]=a[i]*100+a[j]*10+a[k];

t++;

for(l=0;l<4;l++)if(i!=l&&j!=l&&k!=l)

{

b[t]=a[i]*1000+a[j]*100+a[k]*10+a[l];

t++;

}

}

}

}

n=t;

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

{

t=b[i];

for(j=i-1;j>=0;j--)

{

if(b[j]>t)

b[j+1]=b[j];

elsebreak;

}

b[j+1]=t;

}

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

{

printf("%d ",b[i]);

if((i+1)%5==0)

printf(" ");

}

return0;

}

❸ 4個不同的數字有多少種排列組合

根據題目可知,我們可設4個不同的數字分別為a,b,c,d,那麼計算排列組合數,可以採用以下幾種方法:

1、枚舉法

abcd、abdc,acbd,acdb,adbc,adcb,bacd,badc,bcad,bcda,bdac,bdca,cabd,cadb,cbad,cbda,cdab,cdba,dabc,dacb,dbac,dbca,dcab,dcba。

2、公式法

全排列公式

❹ C語言編寫一個程序,真心求教:1.2.3.4四個數,能組合成多少個不同的三位數,都是多少

這是一個簡單的排列組合,三位數,每位都有四個數字可以選擇,所以就是4*4*4種組合,具體如下,不明白的話可以給你講講
#include <stdio.h>
int main()
{
int i,a,b,c;
int num;
i = 1;
for(a = 1; a <= 4; a++) //百位循環
for(b = 1; b <= 4; b++)//十位循環
for(c = 1; c <= 4; c++)//各位循環
{
num = a * 100 + b * 10 + c; //a*100就是百位,b*10就是十位
printf("%d:%d\n", i++, num);
}
return 0;
}

❺ 任意輸入4個不同的數,判斷這4個數最多可以組合成多少個數 c語言

/*Made By gangjia*/
/*輸入的數據用逗號隔開*/
#include "stdio.h"
main()
{
int a,b,c,d;
int Num1 = 1000,Num2 = 1000,Num3 = 1000,Num4 = 1000;
int tempa,tempb,tempc,tempd,temp;
int Num[24];
int i = 0,j = 0,k,x = 0;

printf("please input four Number:\n") ;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);

/*printf("the orgin number is:\n");*/
for(i = 0;i<4;i++)
{
for(j = 0;j<3;j++)
{ while(1)
{
Num2 = Num2/10;
if(Num2 == 0) Num2 = 1000;
if(Num2!=Num1) break;
}
for(k = 0;k<2;k++)
{ while(1)
{
Num3 = Num3/10;
if(Num3 == 0) Num3 = 1000;
if((Num3!=Num1)&&(Num3!= Num2)){
break;
}
}
while(1)
{
Num4 = Num4/10;
if(Num4 == 0) Num4 = 1000;

if((Num4!=Num1)&&(Num4!= Num2)&&(Num4!= Num3)){

break;
}
}
tempa = a*Num1;
tempb = b*Num2;
tempc = c*Num3;
tempd = d*Num4;
Num[x] = tempa+tempb+tempc+tempd;
/* printf("%d ",Num[x]); */
x++;

}
}
Num1 = Num1/10;
}
printf("\nFrom small to big:\n");
for(i = 0;i<24;i++)
{
for(j = i+1;j<24;j++)
{
if(Num[i]>Num[j])
{
temp = Num[i];
Num[i] = Num[j];
Num[j] = temp;
}
else Num[i] = Num[i];

}
printf("\t%d ",Num[i]);
if(i%5 == 4) printf("\n");
}
getch();

}

❻ 用C語言數組求4個不同的數字能組成多少個不同的4位數

請你看看排列組合。
這對你以後的開發很有幫助,是計算機科學的數學基礎。
4個數字,如果不重復的就是4*3*2*1
=
24
如果可以重復的話就是4*4*4*4
=
256

❼ C語言編寫一個程序,真心求教:1.2.3.4四個數,能組合成多少個不同的三位數,都是多少

將1234依次存入一個char型數組內,自定義一個全排列列函數進行4個數字的全排列運算,但每次輸出時只取後3位即可達到目的。代碼如下:

#include"stdio.h"
voidmyfun(char*p,inti,intn){//自定義全排列函數
intj,t;
if(i-n)
for(j=i;j<=n;j++){
t=p[i],p[i]=p[j],p[j]=t;
myfun(p,i+1,n);//全排列遞歸調用
t=p[i],p[i]=p[j],p[j]=t;
}
else
printf(++p[5]%10?"%s":"%s ",p+1);
}
intmain(intargc,char*argv[]){
chara[6]="1234";//多聲明一個元素a[5]用來控制每行輸出10個數
myfun(a,0,3);//用數組名和起末下標調用
if(a[5]%5)
printf(" ");
return0;
}

運行結果:

❽ 用C語言編程求1234四個數能組成多少互不相同且不重復的三位數

三位數有三個位置,每一個位置看作一個變數,假設為i、j、k,

互不相同且不重復的三位數,即i不等於j且j不等於k且i不等於j,用C語言邏輯表達式描述為:

i!=j&&j!=k&&i!=k

三個位置,每一個位置有1、2、3、4,四種可選值,因此其排列數為4^3 = 64種排列組合方法,三個位置互不相同,按分步乘法原理得一共有4x3x2 = 24種排列方法。編寫示例代碼如下:

#include<stdio.h>
intmain()
{
inti,j,k,n=0;//n用於統計個數
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
//保證三位數不重復
if(i!=j&&i!=k&&j!=k)
{
n++;
printf("%d%d%d",i,j,k);
if(n%4==0)
printf(" ");
}
printf(" 一共:%d ",n);
return0;
}


❾ 用4個數字可以組成多少個不同的三位數 C語言編程

#include<stdio.h>
intmain()
{
inti,j,k,n=0;//n用於統計個數
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
//保證三位數不重復
if(i!=j&&i!=k&&j!=k)
{
n++;
printf("%d%d%d",i,j,k);
if(n%4==0)
printf(" ");
}
printf(" 一共:%d ",n);
return0;
}

❿ 4個數字有多少種組合

4個不同的數字有24種排列組合。

可以拿4個不同的數字來進行排列組合,例如2,3,4,5這4個不同的數,當2在最高位時就有2345,2354,2435,2453,2534,2543等6個4位數,那麼4個不同的數組成的4位數就有4個6那麼多,即24個。

但有一種排列組合比較特珠,也就是隨便3個不同的數和0一起排列組合起來的4位數就沒有24個了,因為0不能排在最高位上。

排列和組合的區別:

一、意思不同

1、排列:按次序站立或擺放。

例句:哥哥把需要用的參考書排列在桌子上。

2、組合:組織成為整體。

例句:所有這些替代的組合,構成一個補偏救弊的系統。

二、側重點不同

1、排列:從n個不同的元素中,取r個不重復的元素,按次序排列,稱為從n個中取r個的無重復排列。

例句:代表們的名單是按姓氏筆畫的順序排列的。

2、組合:從n個不同的元素中,取r個不重復的元素,組成一個子集,而不考慮其元素的順序,稱為從n個中取r個的無重組和。

例句:台上的這個組合是五位光彩奪目的二八佳人組成的。