Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/04/2014, 15:44
beinat
 
Fecha de Ingreso: abril-2008
Mensajes: 64
Antigüedad: 16 años
Puntos: 2
Respuesta: Numero M-Alternante

Hola buenas noches:

Mi propuesta seria algo asi, esta probado y funciona(creo) habria que hacer muchos controles pero bueno, mi idea era:

1) lograr el primer digito y saber si es par o inpar para saber la secuencia
2)una vez sabido eso declaramos un control que empieze en 2 y se vaya incrementando
3)si el primer digito es par los siguientes digitos deben de ser inpar, por lo tanto comenzamos otro blucle desde 0 hasta 'control' y que vaya viendo si son inpar
4)al terminar ese segundo blucle, declaramos la variable 'par' a lo contrario que estaba antes, para asi en la proxima vuelta buscar lo contrario, es decir, si el primer digito es par la variable par sera true, por lo tanto los siguiente digitos deben de ser inpar, y al terminar esa busqueda declaramos par=false para asi en la siguiente vuelta buscar los siguintes pares

Código vb:
Ver original
  1. Private Sub comprobar_Click(sender As Object, e As EventArgs) Handles comprobar.Click
  2.         Dim numeros As Integer = Convert.ToInt64(numero.Text)
  3.         Dim alternante As Boolean
  4.         Dim par As Boolean
  5.         par = False
  6.         Dim cuantos As Integer
  7.         Dim control As Integer
  8.         alternante = True
  9.         Dim primer_digito As Integer = CInt(numero.Text.Substring(0, 1))
  10.         If (primer_digito Mod 2 = 0) Then
  11.             par = True
  12.         End If
  13.         cuantos = 0
  14.         control = 2
  15.         Dim j As Integer = 1
  16.         Dim longitud As Integer = numero.TextLength
  17.         For i = 1 To longitud
  18.             cuantos = 0
  19.             If (par = True) Then
  20.                 While (cuantos < control)
  21.                     If (CInt(numero.Text.Substring(j, 1)) Mod 2 <> 0) Then
  22.                     Else
  23.                         alternante = False
  24.                     End If
  25.                     j = j + 1
  26.                     i = i + 1
  27.                     cuantos = cuantos + 1
  28.                 End While
  29.                 par = False
  30.             Else
  31.                 While (cuantos < control)
  32.                     If (CInt(numero.Text.Substring(j, 1)) Mod 2 = 0) Then
  33.                     Else
  34.                         alternante = False
  35.                     End If
  36.                     j = j + 1
  37.                     i = i + 1
  38.                     cuantos = cuantos + 1
  39.                 End While
  40.                 par = True
  41.             End If
  42.             control = control + 1
  43.         Next
  44.         If (alternante = True) Then
  45.             MessageBox.Show("el numero es m-alternante")
  46.         Else
  47.             MessageBox.Show("El numero no es m-alternante")
  48.         End If

faltaria hacer controles de longitudes,es decir si ingresas 122333 te va a dar bien, pero si metes 1223 te va a dar un error porque faltan numero, pero eso ya lo dejo para que le des tu un par de vueltas.

Espero haberte ayudado, igual un poco larga la explicacion, pero creo que el tema lo requeria para explicarme bien.

Espero una respuesta tuya, para poder seguir ayudandote.

Un saludo