#include <>
//通过for循环将变量i,j,k的取值锁定在1,2,3,4之间
int main() {
int num = 0;
int i = 0, j = 0, k = 0;
for (i = 1; i <= 4; i++) {
for (j = 1; j <= 4; j++) {
//排除前两个数相等的情况
if (i == j) {
continue;
}
for (k = 1; k <= 4; k++) {
//排除第三个数与前两个数中任意数相等的情况
if (j == k || i == k) {
continue;
}
printf("%d %d %d\n",i ,j ,k);
//每输出一个数,num计数加一
num++;
}
}
}
printf("%d", num);
return 0;
}
最近看的写的学的有些驳杂,但也有些手痒想发些什么,就随手找了找一些C语言的经典题做了做。但单纯的经典题多少有些无趣了,毕竟经典经典,早不知多少人发过了,所以还额外的写了一下本题的一种递归解法:
void output(int i, int j, int k) {
//若三个数两两不同,则开始输出前判断
if (i != j && j != k && i != k) {
if (i == 5) {
return;
}
//j和k的范围超出判断
if (j > 4) {
output(i + 1, 1, k);
return;
}
if (k > 4) {
output(i, j + 1, 1);
return;
}
printf("%d %d %d\n", i, j, k);
//输出后进入下一循环
output(i, j, k + 1);
return;
}
//三个数当中有任意两个相等的情况的变化方法
if (j == k || i == k) {
k++;
}
if (i == j) {
j++;
}
output(i, j, k);
return;
}
int main() {
output(1, 1, 1);
return 0;
}