题目:有1、2、3、4个,请问能组成多少个互不相同且无重复数字的三位数?都是多少?
以下两个程序的运行结果都是一样的不过两个程序的思想不一样,可能很多新人第一反应都是使用第一种方法。两种方法都可做了解。
方法一:
#include<stdio.h>
int main()
{
int a=1,b=2,c=3,d=4;
int i,x,y,z;
for(i=100;i<1000;i++)
{
x=i/100;
y=i/10%10;
z=i%10;
if(x==a||x==b||x==c||x==d)
{
if(y==a||y==b||y==c||y==d)
{
if(z==a||z==b||z==c||z==d)
{
if(x!=y&&x!=z&&y!=z)
{
printf("%d%d%d ",x,y,z);
}
}
}
}
}
return 0;
}
方法二:
#include<stdio.h>
int main()
{
int x,y,z;
for(x=1;x<5;x++)
{
for(y=1;y<5;y++)
{
for(z=1;z<5;z++)
{
if(x!=y&&x!=z&&y!=z)
{
printf("%d%d%d ",x,y,z);
}
}
}
}
return 0;
}
【运行结果】