给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数,c语言思路
时间: 2024-05-09 12:16:18 浏览: 84
思路:
1.输入正整数A。
2.将A、A+1、A+2、A+3这四个数字按顺序组成的所有3位数存入数组中。
3.遍历数组,对每个3位数判断是否有重复数字,若无重复则输出。
实现:
```c
#include <stdio.h>
int main()
{
int A, i, j, k, m, n, flag;
int arr[4];
scanf("%d", &A);
for (i = 0; i < 4; i++) {
arr[i] = A + i;
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
if (j != i) {
for (k = 0; k < 4; k++) {
if (k != i && k != j) {
n = arr[i] * 100 + arr[j] * 10 + arr[k];
flag = 1;
for (m = 0; m < 3; m++) {
if (n / 100 == arr[m] || (n / 10) % 10 == arr[m] || n % 10 == arr[m]) {
flag = 0;
break;
}
}
if (flag) {
printf("%d\n", n);
}
}
}
}
}
}
return 0;
}
```
示例:
输入:
```
1
```
输出:
```
123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432
```
阅读全文