Permuta de números

Hola, experto necesite que me ayuden a resolver esto. Necesito hacer una rutina que cobine o haga permutas, es decir que al yo introducir un numero dado me realice la permuta.
Ejemplo
intrudusco esto = 123
Y el resultado seria así, 123, 132,213,231,312,321,
ademas que si introduco morocho o números iguales, no me repita.
** osea
introdusco 122
el resultado seri= 122, 221,212,
Claro esto es un ejemplo, tengo algo de idea, pero no me sale..
Gracias.

1 respuesta

Respuesta
1
Acá va tu código
**********
tenes que llamar a la function Permutar
eg: s = Permutar("123")
saludos
*********
Function Permutar(s As String) As String
Dim i As Integer
Dim s2 As String
Dim sOut As String
Dox s, Len(s), sOut
Permutar = sOut
End Function
Sub AgregarCombinacion(ByRef s As String, sNew As String)
' no agrega elementos duplicados
If InStr(1, s, sNew) = 0 Then
s = s & sNew & " "
End If
End Sub
Sub Dox(ByRef s As String, m As Integer, ByRef sOut As String)
Dim s2 As String, x As Integer
s2 = s
If m > 2 Then
For x = 1 To m
Dox s2, m - 1, sOut
s2 = Desplazar(s2, m)
Next x
Else
AgregarCombinacion sOut, s
AgregarCombinacion sOut, Desplazar(s2, m)
End If
End Sub
Function Desplazar(ByRef s As String, m As Integer) As String
If Len(s) > m Then
sStg = Left(s, Len(s) - m) & Right(s, m - 1) & Mid(s, IIf(m = 2, Len(s), m) - 1, 1)
Else
sStg = Right(s, m - 1) & Left(s, 1)
End If
Desplazar = sStg
End Function
¿Y?, como te fue, ¿te sirvió?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas