用C语言编写一个排列组合的程序
就是四组数字(如:a2b85a8fb9ec5c2f等16进位数)排列起来,一共是16位数,可以是a2b85a8fb9ec5c2f;也可以是b9ec5c2fa2b85a8f...
就是四组数字(如:a2b8 5a8f b9ec 5c2f 等16进位数)
排列起来,一共是16位数,可以是a2b85a8fb9ec5c2f;也可以是b9ec5c2fa2b85a8f,所有的组合顺
序有多少种结果?有没有什么程序可以输入上面四组数据,自动生成所有结果?没有顺序,顺序随机 展开
排列起来,一共是16位数,可以是a2b85a8fb9ec5c2f;也可以是b9ec5c2fa2b85a8f,所有的组合顺
序有多少种结果?有没有什么程序可以输入上面四组数据,自动生成所有结果?没有顺序,顺序随机 展开
2个回答
展开全部
#include<stdio.h>
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 ;
}
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 ;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思是说歼睁:输入4个数,然后把这4个数任意排列,然后把组合的个数输出?
就是输入1/2/3/4←烂改贺你可以把它看成16进制数.....(谁说16进制说没个位的)
然后就排成
1234,4321,1432等?
问一下问题饥派:输入的4个数的长度固定吗?(比如都是4位)如果不固定长度一样吗?(比如:1df45.4fda4,324f,da345)
就是输入1/2/3/4←烂改贺你可以把它看成16进制数.....(谁说16进制说没个位的)
然后就排成
1234,4321,1432等?
问一下问题饥派:输入的4个数的长度固定吗?(比如都是4位)如果不固定长度一样吗?(比如:1df45.4fda4,324f,da345)
追问
长度确定啊,一共是16位数,比如输入(a2b8 5a8f b9ec 5c2f )这四组数,能输出a2b85a8fb9ec5c2f、b9ec5c2fa2b85a8f、a2b85a8f5c2fb9ec、5a8fb9ec5c2fa2b8.......等等所有的结果(其中四组数字必须都用上,意思是必须是16位数)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询