и нет, я не могу / не могу просто сохранить массив и выполнить поиск.
Почему бы и нет?
Да, вход всегда будет конечным набором от 0 до 6. Он не будет масштабироваться позже.
Просто используйте несколько условных выражений.
if (input == 0) return 1;
else if (input == 1) return 0;
else if (input == 2) return 6;
...
Или найдите формулу, если ее легко увидеть, и она здесь:
if (input == 0) return 1;
else if (input == 1) return 0;
else return 8 - input;
Вот способ избежать как по модулю, так и по условию, исходя из этого:
y = (8 - x) % 7
Мы знаем, что x % y = x - floor(x/y)*y
Так что мы можем использовать y = 8 - x - floor((8 - x) / 7) * 7