导航菜单
首页 >  » 正文

c语言题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

c语言题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

百位数有4种选择,为与百位数不重复,十位数就只有3种选择了;同样道理,个位数就只有2种选择。所以1、2、3、4等4个数字能组成4x3x2共24种互不相等且没有重复数字的3位数。根据上述原理,可用一个3层嵌套for循环来完成,代码如下:
#include "stdio.h"int main(int argc,char *argv[]){
int i,j,k,t;printf("A total of %d no repeat number 3-digits, they are as follows: ",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 ",i*100+j*10+k);//输出该三位数
if(t%10)printf(" ");
return 0;
}

扩展资料
#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 ",i,j,k);
m++;
}
}
printf("%d ",m);
getch();
}
参考资料:搜狗百科 for循环

相关推荐: