按从小到大的顺序输入四个互不相同的一位数,能组成多少互不相同且无重复数字的四位数?输出这些数字
#include "stdio.h"
void main()
{
int i,j,k,l,sum=0;
int t[4]={0};
scanf("%d %d %d %d",&t[0],&t[1],&t[2],&t[3]);//输入四个一位数,不要重复
for(i=0;i<4;i++)//控制每位的数字是输入的四个数字中的一个,且各不相同
for(j=0;j<4;j++)
for(k=0;k<4;k++)
for(l=0;l<4;l++)
if(i!=j&&i!=k&&i!=l&&j!=k&&j!=l&&k!=l)
{
printf("%d\n",t[i]*100+t[j]*10+t[k]);//打印
sum++;
}
printf("总共有%d种组合\n",sum);
}
#include<stdio.h>
int main()
{
int i,j=0,k,h;
int a,b,c,d;
int t[4];
scanf("%d",&t[0]);
scanf("%d",&t[1]);
scanf("%d",&t[2]);
scanf("%d",&t[3]);
int f=0;
int s[10000];
int count=0;
int n;
for(i=0; i<4; i++)
{
a=t[i]*1000;
for(j=0; j<4; j++)
{
b=t[j]*100;
for(k=0; k<4; k++)
{
c=t[k]*10;
for(h=0; h<4; h++)
{
d=t[h];
for(n=9999; n>999; n--)
{
if(n==a+b+c+d)
{
if(i!=j&&i!=k&&i!=h&&j!=k&&j!=h&&k!=h)
{
//printf("%d\n",n);
s[f]=n;
f++;
count++;
}
}
}
}
}
}
}
for(h=0; h<f; h++)
{
printf("%d\n",s[h]);
}
//printf("count:%d\n",count);
return 0;
}
#include<stdio.h>
#include<stdlib.h>
/*
按从小到大的顺序输入四个互不相同的一位数,
能组成多少互不相同且无重复数字的四位数?输出这些数字
*/
int main(void) {
int a[4];
scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);
if (a[0]==0) //最高位不能为0,所以当最小值为0时需要特殊处理
{
printf("可组成的四位数有%d个\n",18);
for (int i = 1; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (j==i)
{
continue;
}
for (int k = 0; k < 4; k++)
{
if (j == k||k == i)
{
continue;
}
for (int s = 0; s < 4; s++)
{
if (s == k || s == i || s == j)
{
continue;
}
printf("%d ",a[i]*1000+a[j]*100+a[k]*10+a[s]);
}
}
}
}
}
else
{
printf("可组成的四位数有%d个\n", 24);
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (j == i)
{
continue;
}
for (int k = 0; k < 4; k++)
{
if (j == k || k == i)
{
continue;
}
for (int s = 0; s < 4; s++)
{
if (s == k || s == i || s == j)
{
continue;
}
printf("%d ", a[i] * 1000 + a[j] * 100 + a[k] * 10 + a[s]);
}
}
}
}
}
return 0;
}