百位数有4种选择,为与百位数不重复,十位数就只有3种选择了;同样道理,个位数就只有2种选择。所以1、2、3、4等4个数字能组成4x3x2共24种互不相等且没有重复数字的3位数。根据上述原理,可用一个3层嵌套for循环来完成,代码如下:
#include"stdio.h"intmain(intargc,char*argv[]){
inti,j,k,t;printf("Atotalof%dnorepeatnumber3-digits,theyareasfollows:\n",4*3*2);
for(t=0,i=1;i<=4;i++)//百位数字有4种选择for(j=1;j<=4;j++)//十位数字有3种选择
if(j!=i)//遇到十位数字等于百位数字时跳过
for(k=1;k<=4;k++)//个位数字只有2种选择了
if(k!=i&&k!=j)//个位数字与十位或百位数字相等时跳过
printf(++t%10?"%4d":"%4d\n",i*100+j*10+k);//输出该三位数
if(t%10)printf("\n");
return0;
}
扩展资料
#include<stdio.h>
main()
{
int i, j, k;
int m=0;
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
{
if(i!=j&&k!=j&&i!=k)
{
printf("%d%d%d\n",i,j,k);
m++;
}
}
printf("%d\n",m);
getch();
}
参考资料:百度百科 for循环