Files
BasicsOfComputerSoftwareEng…/POP/07/Optional04.c
2023-02-21 10:56:54 +08:00

42 lines
1013 B
C
Executable File

#include <stdio.h>
#include <stdbool.h>
int pickedColor[6] = { 0 };
bool pickNextColor(int layer, int maxColorCount) {
int i = 1;
if (layer == 6) {
if ((pickedColor[1] != pickedColor[5])
&& (pickedColor[1] != pickedColor[4])
&& (pickedColor[1] != pickedColor[3])
&& (pickedColor[5] != pickedColor[4])
&& (pickedColor[3] != pickedColor[4])
&& (pickedColor[4] != pickedColor[2])
&& (pickedColor[3] != pickedColor[2])) {
printf("Min color required: %d\n", maxColorCount);
printf("A: %d\nB: %d\nC: %d\nD: %d\nE: %d\n",
pickedColor[1], pickedColor[2], pickedColor[3], pickedColor[4], pickedColor[5]);
return true;
}
else {
return false;
}
}
else {
for (i = 1; i <= maxColorCount; i++) {
pickedColor[layer] = i;
if (pickNextColor(layer + 1, maxColorCount)) {
return true;
}
}
return false;
}
}
int main() {
int maxColorCount = 2;
while (!pickNextColor(1, maxColorCount)) {
maxColorCount++;
}
return 0;
}