Как посчитать числа с разными цифрами меньше определенного числа?

Возможный дубликат:
Нет чисел меньше заданного числа без повторяющихся цифр

Числа меньше 10 с разными цифрами: 9,8,7,....1. Итак, есть 9 чисел.

Точно так же все числа с разными цифрами меньше 100, кроме 11,22,33,44....,99, поэтому всего 90 чисел. Мы также можем вычислить это как (9*9)+9=90 (всего комбинаций двухзначных чисел + однозначных чисел).

Моя проблема в том, что если нам дали оценку, которая не является степенью 10, например, 123. Тогда как мы поступим? Будет 90 чисел меньше 100, а затем числа 102, 103, 104, 105, 106, 107, 108, 109 и 120. Во всех остальных повторяется одна из цифр. Всего 90 + 9 = 99 чисел.

Как можно вычислить это число, не перечисляя на самом деле все числа?


person nikoo28    schedule 05.11.2012    source источник
comment
@HighPerformanceMark: это старый вопрос, поэтому я бы сказал, что другой является дубликатом этого. Но спасибо за указатель.   -  person MvG    schedule 06.11.2012