Показать сообщение отдельно
Старый 16.03.2005, 16:56     # 100
lalexa100
Junior Member
 
Регистрация: 04.12.2002
Адрес: Москва, Кузьминки
Сообщения: 53

lalexa100 Известность не заставит себя ждать
n= №1357
-- опред кол-ва цифр
цикл
n1 = 10 0-9
n2 = 9*9 +n1 10-99
n3 = 9*9*8 +n2 100-999
n4 = 9*9*8*7 +n3 1000-9999
n5 = 9*9*8*7*6 +n3 10000-99999
определили ближ меньшее nX - мы знаем сколько цифр
m1=n-nX - сколько неповтор. чисел X цифр

определим 1 цифру (например из 5 цифр)
для 1 9*8*7*6
для 2 9*8*7*6+для 1
для 3 9*8*7*6+для 2

т.е. m1 берем по модулю 9!/5! - определили 1 цифру

для нее получили m2=m1- (9!/5!*(цифра -1)
для второй цифры (и далее немного меняя формулу)
для 1 9*8*7
для 2 9*8*7+для 1
для 3 9*8*7+для 2
для нее получили m3=m2- (9!/6!*(цифра2 -1)

Вот такой алгоритм приблизительно
__________________
В программировании главное - это пиво

Последний раз редактировалось lalexa100; 16.03.2005 в 17:00.
lalexa100 вне форума