Advanced_Guest
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Frez Вариантов будет (при 10 значном числе, те цифры которые ты использовал.): 4*4*3*3*3*3*2*2*1=5184 Советую начинать с более простых чисел (2-3 значных.) Например число 123 Варианты: 123 132 213 231 312 321 Всего 6 Вычесляеться по формуле 3*2*1. На первое место может встать 3 варианта (1, 2 или 3), на второе - только 2 (1,2 или 3 кроме того что было в 1 варианте), на третье - то что осталось. Если писать алгоритм, то наверное нужно будет использовать рекурсию. То есть подпрограмма вызывает саму себя, потом опять саму себя и так далее, или же цикл в цикле, который опять в цикле и так далее . Что-то типо: Массив возможные_Символы() Массив ответы() for n=0 to Количество_Возможностей . . Первый_символ=возможные_Символы(n) . . for i=0 to Количество_Возможностей . . . . Если i=n , тогда перейти к следующему i . . . . . . '//Чтобы был один и тот же символ не повторялся 2 раза в одной строке. . . . . Второй_символ=возможные_Символы(i) . . . . for x=0 to Количество_Возможностей . . . . . . Если x=n или x=i, тогда перейти к следующему x . . . . . . третьий_символ=возможные_Символы(x) . . . . . . ответ(Номер_ответа) =Первый_символ & Второй_символ & третьий_символ . . . . . . Номер_ответа=Номер_ответа+1 . . . . Следующий x . . Следующий i следующий n Теперь только нужно переписать это всё из псевдо кода в программный код PS: Этот вариант проходит только для 3-значных сочитаний. Тебе же надо написать это в функцию, которая делает то-же. PPS: Писал я это на пседо Visual Basic, как в других зыках не знаю
|