用C语言编写一个排列组合的程序

2024-11-23 19:38:48
推荐回答(2个)
回答1:

#include

int a[5];
int len1,len2,len3;

void input(int len1,int len2,int len3)
{
printf("%d %d %d\n",a[len1],a[len2],a[len3]);
}

void solve(int len1,int len2,int len3)
{
input(len1,len2,len3);
if(len1==2) return;
if(len3<4) len3++;
else if(len2<3)
{
len2++;
len3=len2+1;
}
else if(len1<2)
{
len1++;
len2=len1+1;
len3=len2+1;
}
solve(len1,len2,len3);
}

void main()
{
int i;
for(i=0;i<5;i++) a[i]=i+1;
printf("所构成组合是:\n");
solve(0,1,2);
return ;
}

回答2:

你的意思是说:输入4个数,然后把这4个数任意排列,然后把组合的个数输出?
就是输入1/2/3/4←你可以把它看成16进制数.....(谁说16进制说没个位的)
然后就排成
1234,4321,1432等?
问一下问题:输入的4个数的长度固定吗?(比如都是4位)如果不固定长度一样吗?(比如:1df45.4fda4,324f,da345)