Description
给定不超过6的非负整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。
Input
不超过6的非负整数A。
Output
输出满足条件的的3位数,要求从小到大,每行6个整数,整数间以空格分隔。
Sample Input 1
2
Sample Output 1
234 235 243 245 253 254 324 325 342 345 352 354 423 425 432 435 452 453 523 524 532 534 542 543
#include <stdio.h>
#include<math.h>
#include<string.h>
int main()
{
int n;
scanf("%d", &n);
int a[4];
for (int i = 0; i < 4; i++)//从n开始的4个数存进数组
a[i] = n++;
for (int i = 0; i < 4; i++)//首数字
{
int flag = 0;//用来实现末尾无空格
for (int k = 0; k < 4; k++)//第二个数字,需要与首数字不同
{
if (i != k)
{
for (int j = 0; j < 4; j++)//第三个数字,需要与首个和第二个不同
{
if (j != i && j != k)
{
if (a[i])//首数字如果为0,就不输出
{
if (flag++)putchar(' ');//在除第一个外数字的前面输出空格
printf("%d%d%d", a[i], a[k], a[j]);
}
}
}
}
}
if(a[i])//除了首数字为0,其他都6个换行一次
putchar('\n');
}
return 0;
}