给定不超过 6 的正整数 A,考虑从 A 开始的连续 4 个数字。请输出所有由它们组成的无重复数字的 3 位数。
输入格式:
输入在一行中给出 A。
输出格式:
输出满足条件的的 3 位数,要求从小到大,每行 6 个整数。整数间以空格分隔,但行末不能有多余空格。
输入样例:
2
输出样例:
234 235 243 245 253 254
324 325 342 345 352 354
423 425 432 435 452 453
523 524 532 534 542 543
来源:
来源:PTA | 程序设计类实验辅助教学平台
链接:https://pintia.cn/problem-sets/14/exam/problems/796
提交:
题解:
#include<stdio.h>
int main(void) {
int digits[4];
scanf("%d", &digits[0]);
digits[1] = digits[0] + 1;
digits[2] = digits[0] + 2;
digits[3] = digits[0] + 3;
int cnt = 0;
// 三位数的百位
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 (k == i || k == j) {
continue;
}
printf("%d%d%d", digits[i], digits[j], digits[k]);
cnt++;
// 最后一行不得有多余的空格,每 6 个换行
if (cnt % 6 == 0) {
printf("\n");
} else {
printf(" ");
}
}
}
}
return 0;
}