Вот проблема:
Вам дан массив из цифр 0-9 и целое число n . Массив может содержать дубликаты любой заданной цифры. Найдите все целые числа, которые могут быть образованы путем соединения цифр из входного массива и имеют значение меньше n . Цифры из входного массива могут повторяться в элементе на выходе.
Например, если заданы в качестве входов [2, 5, 8] и n = 223, то следующим выводом должно быть:
[2, 5, 8, 22, 25, 28, 52, 55, 58, 82, 85, 88, 222]
Очевидно, что любое целое число с меньшим количеством цифр, чем n будет принято, а любое с большим количеством отклоненных. Но как наиболее эффективно найти те, которые имеют одинаковое количество цифр? Решение, которое я знаю, состояло бы в том, чтобы иметь вложенные циклы, по одной на каждую цифру во входном целом числе, и формировать каждую возможную комбинацию цифр из входного массива и проверять ее. против n . Хотя это кажется неуклюжим, и мне интересно, есть ли лучший способ.