Bueno ahorita no tengo nada que hacer e hice esto...
Código
' ' ///////////////////////////////////////////////////////////// ' // Autor: BlackZeroX ( Ortega Avila Miguel Angel ) // ' // // ' // Web: http://InfrAngeluX.Sytes.Net/ // ' // // ' // |-> Pueden Distribuir Este Codigo siempre y cuando // ' // no se eliminen los creditos originales de este codigo // ' // No importando que sea modificado/editado o engrandesido // ' // o achicado, si es en base a este codigo // ' ///////////////////////////////////////////////////////////// Option Explicit Public Function IsJolly(ByVal StrNum As String, Optional PosOfCrash As Long) As Boolean On Error GoTo Terminar Dim lenNum As Long Dim index As Long Dim Desendente As Byte Dim Spli(1) As Byte Dim ValTmp(1) As Byte Dim Resultados() As Byte lenNum = Len(StrNum) For index = 1 To lenNum - 1 ValTmp(0) = CByte(Mid(StrNum, index, 1)) ValTmp(1) = CByte(Mid(StrNum, index + 1, 1)) Call IntercVal(ValTmp(1), ValTmp(0)) Spli(0) = ValTmp(0) - ValTmp(1) ValTmp(0) = Spli(1) ValTmp(1) = Spli(0) Call IntercVal(ValTmp(1), ValTmp(0)) Debug.Print Spli(0) If index > 1 Then IsJolly = Not ValTmp(0) - ValTmp(1) > 1 If IsJolly Then If (ValTmp(0) - ValTmp(1) + 1) = 0 Then If Desendente = 0 Then Desendente = 1 Else IsJolly = ((ValTmp(0) > ValTmp(1)) And Desendente = 1) If Not IsJolly Then Exit For End If ElseIf (ValTmp(0) - ValTmp(1) - 1) = 0 Then If Desendente = 0 Then Desendente = 2 Else IsJolly = ((ValTmp(0) < ValTmp(1) Or (ValTmp(0) - 1) = ValTmp(1)) And Desendente = 2) If Not IsJolly Then Exit For End If End If Else PosOfCrash = index Exit For End If End If Spli(1) = Spli(0) Next index Exit Function Terminar: IsJolly = False End Function Public Sub IntercVal(ByRef ValMenor As Byte, ByRef ValMayor As Byte) Dim Tmp As Byte If Not ValMenor < ValMayor Then Tmp = ValMayor ValMayor = ValMenor ValMenor = Tmp End If End Sub
Notas:
Este texto fue escrito por DARK_J4V13R el 08/02/2010, 20:58 en foros PH... así de aburrido ando xP!¡.
Citar
¿Cómo saber si un número es Jolly o no?
Si tenemos el numero: 51421 entonces para saber si ese número es jolly o no debemos de hacer la siguiente operación:
5-1=4
4-1=3
4-2=2
2-1=1
Resultado: Es Jolly
Como ven deben de ordenar los números de tal manera que no den negativos y para saber si es jolly los resultados deben de ser consecutivos como podrán ver: 4,3,2,1 son consecutivos por lo tanto es Jolly, pero si encaso no fueran consecutivos el resultado sería que no es Jolly.
Nota: Si el resultado es de mayor a menor o de menor a mayor no importa ya que si es consecutivo sigue siendo Jolly.
Ejemplo #2
Número: 41423
4-1=3
4-1=3
4-2=2
3-2=1
Resultado: Es Jolly
En este ejemplo como verán el 3 aparece dos veces, esto no afecta en nada el resultado ya que si siguen llevando un orden consecutivo sigue siendo Jolly
Ejemplo #3
Numero: 43117
4-3=1
3-1=2
1-1=0
7-1=6
Resultado: No es Jolly
El resultado aquí No es Jolly ya que como los resultados no llevan un orden consecutivo no son Jolly.
Si tenemos el numero: 51421 entonces para saber si ese número es jolly o no debemos de hacer la siguiente operación:
5-1=4
4-1=3
4-2=2
2-1=1
Resultado: Es Jolly
Como ven deben de ordenar los números de tal manera que no den negativos y para saber si es jolly los resultados deben de ser consecutivos como podrán ver: 4,3,2,1 son consecutivos por lo tanto es Jolly, pero si encaso no fueran consecutivos el resultado sería que no es Jolly.
Nota: Si el resultado es de mayor a menor o de menor a mayor no importa ya que si es consecutivo sigue siendo Jolly.
Ejemplo #2
Número: 41423
4-1=3
4-1=3
4-2=2
3-2=1
Resultado: Es Jolly
En este ejemplo como verán el 3 aparece dos veces, esto no afecta en nada el resultado ya que si siguen llevando un orden consecutivo sigue siendo Jolly
Ejemplo #3
Numero: 43117
4-3=1
3-1=2
1-1=0
7-1=6
Resultado: No es Jolly
El resultado aquí No es Jolly ya que como los resultados no llevan un orden consecutivo no son Jolly.
Sangrientas Lunas!¡.