#include
#define N1 10
#define N2 10
#define N3 10
//改变N1 N2 N3 的值就可以求其他的组合了
main()
{
int i,j,k,n,
Ispass=1,//判断重复检验是否通过的 0 or 1 变量
count=0;//计数器
int a[N1],b[N2],c[N3];
//清零
for(i=0;i
for(j=0;j
for(k=0;k
for(i=0;i
Ispass=1;
a[i]=i+1;
for(j=0;j
Ispass=1;
if(i==j) continue;
//检验要赋给b的值是否已经在a中出现过
for(n=0;n
if(a[n]==0) continue;
if(a[n]==j+1)
{
Ispass=0;
break;
}
}
if(Ispass==0) continue;
b[j]=j+1;
for(k=0;k
Ispass=1;
if(i==k||j==k) continue;
//检验要赋给c的值是否在a中重复出现过
for(n=0;n
if(a[n]==0) continue;
if(a[n]==k+1)
{
Ispass=0;
break;
}
}
if(Ispass==0) continue;
//检验要赋给c的值是否在b中重复出现过
for(n=0;n
if(b[n]==0) continue;
if(b[n]==k+1)
{
Ispass=0;
break;
}
}
if(Ispass==0) continue;
c[k]=k+1;
count++;
printf("%d %d %d\n",a[i],b[j],c[k]);
}
}
}
printf("%d",count);
getchar();
}
高手看了请轻喷= =
#include
long fac(int n)
{
if (n==1)
return 1l;
else
return n*fac(n-1);
}
void main()
{
int m,n,c;
m=10,n=3;
c=fac(m)/(fac(n)*(fac(m-n)));
printf("共有%d种组合方式\n",c);
}
10*9*8/3*2*1=120
????