Рассмотрим пробелы между числами 1 2 3 4 5 6 7 8 9.
Существует 8 таких промежуточных пространств или слотов.
Каждое такое пространство может быть заполнено +, - или ничем (указывая
большее число формируется).
Это три варианта в каждом из восьми слотов. Назначьте цифры для трех возможных заполнителей как:
0 --> +
1 --> -
2 --> (nothing)
Теперь каждая 8-значная тройная строка соответствует решению. Например:
00000000 --> 1+2+3+4+5+6+7+8+9
00000001 --> 1+2+3+4+5+6+7+8-9
00000002 --> 1+2+3+4+5+6+7+89
22222222 --> 123456789
Теперь напишите простой цикл, который считает от 00000000 до 22222222 в тринах.
Интерпретируйте каждое число по пути как решение, как указано выше, остановитесь, как только вы достигнете решения, дающего цель, 101, или сообщите об ошибке, если дойдете до конца, не достигнув целевого значения.
Есть 3 ^ 8 (показатель степени, а не xor, или 3 ** 8 для фортраноидов, или
3*3*3*3*3*3*3*3
для интенсивно буквально) возможных решений. Это только 6561; Вы можете легко перебить его таким способом.