题目:由1,2,3,4能组成多少个互不相同且无重复数字的三位数?都是多少?(c语言)
思路:首先我们能看到1,2,3,4这四个数字都能作为一个3位数的百位,我们要求能组成的三位数有多少个,就是从这4个数中任意取出三个排列组合,我们定义三个变量i(百位),j(十位),k(个位),用三个for循环来求出这个三位数存放在数组(num[N])中,我们取出数字是1,2,3,4中的三个,所以的排除i=j=k的情况,这个数字就是i100+j10+k,然后将这个数组中的重复元素去除,就可以得出此题的答案
运行结果截图:
代码:
```c
#include<stdio.h>
int main()
{
int i,j,k,s;
int t;
int n=0;
int num[N];
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
for(k=1;k<=4;k++)
{
if(i!=j&&i!=k&&j!=k){
num[n]=i*100+j*10+k;
n++;
}
}
}
}
//去掉数组中的重复元素
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(num[i]==num[j]&&i!=j)
{
num[i]=num[i+1];
n--;
break;
}
}
}
printf("由1,2,3,4组成的无重复数字分别是:\n");
for(i=0;i<n;i++)
printf("%d ",num[i]);
printf("\n这些数字共有:%d",n);
return 0;
}
版权声明:本文为HYK_DJ5201314原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。