4个数字按6位排列的问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 22:14:35
现在有六个数位,4个数字,要把这4个数字排列到这六个数位中,可以有重复,但是每个数字都必须用上。要求出所有的可能性,就是把所有的可能性排列出来。
我知道这个用vb很简单,可惜我不会.....

数字:1,9,4,8
各位大虾捧个人场就好了,直接把答案贴上或者是把vb编程告诉我都行。
(= =)个人比较欢迎前者,因为看不懂编程...

没想到这个看似小小的问题花了我一个半小时,程序在win-tc和Dev-c++下调试通过,大家有好的算法拿出来我学习一下。
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
main()
{
int i,j,k,l,m,n,total=0;
int b[6];
int a[]={0,1,0,9,0,4,0,8}; /使用数组中的1,3,5,7号元素,因为3,5,7互为质因数/
for(i=1;i<8;i+=2)
{b[0]=a[i];
for(j=1;j<8;j+=2)
{b[1]=a[j];
for(k=1;k<8;k+=2)
{b[2]=a[k];
for(l=1;l<8;l+=2)
{b[3]=a[l];
for(m=1;m<8;m+=2)
{b[4]=a[m];
for(n=1;n<8;n+=2)
{b[5]=a[n];
if(!((i*j*k*l*m*n)%(1*3*5*7))&&(i==1||j==1||k==1||l==1||m==1||n==1)) /*因数1还要单独考虑*/
{ printf("%d%d%d%d%d%d\n",b[0],b[1],b[2],b[3],b[4],b[5]);
total++;
}
}
}
}
}
}
}
printf("The total is:%d\n",total);
getch();
}

你不会,你怎么知道用VB简单?