Autor
|
Tema: Ayuda Programa M-Alternante (Leído 2,557 veces)
|
Edmec
Desconectado
Mensajes: 2
|
Buenos días compañeros,
Tengo un problema el quiero solicitar su valiosa ayuda. (solo busco un tip, idea que me pueda ayudar a resolver el problema)
El problema es el siguiente:
Un número entero positivo se dice M-alternante si : El primer dígito es par entonces los 2 dígitos siguientes deben ser impares, luego los tres siguientes dígitos deben ser pares y así sucesivamente.
Por ejemplo: 122357 es un número M-alternante de orden 3 Lo que no encuentro como hacer es para ir comparando si el primero es par, y luego los siguientes 2 de la cadena sean impares y luego los siguientes 3 de la cadena sean impares.
Les agradezco mucho cualquier tip que me puedan dar,
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Convierte el número a cadena. Después puedes diseñar una función recursiva en la que, en base al número de pasos, sepa cuántos dígitos debe comparar y si estos han de ser pares o impares.
|
|
|
En línea
|
|
|
|
Edmec
Desconectado
Mensajes: 2
|
Gracias por tu ayuda,
te cometo que esa parte si la he logrado resolver, he ingresado el numero en un string, para ir manipulando cada caracter por separado (Claro haciendo las conversiones necesarias). y verificar con mod (%) si es par o impar.
Pero lo que se me esta complicando es el procedimiento que vaya alternando 1 primero par, luego los siguientes 2 impares, luego los siguientes 3 pares, luego siguientes 4 impares, asi sucesivamente.
1 par siguientes 2 posiciones impares siguientes 3 posiciones pares siguientes 4 posiciones impares siguientes 5 posiciones pares asi sucesivamente para Numeros de N posiciones.
Nuevamente gracias por tu ayuda,
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Una función recursiva que reciba dos parámetros: la cadena (un puntero) y el paso (un entero).
La llamada a la función desde el main se hace pasando como paso un 0.
La función calcula, en base al paso, la posición desde la que debe empezar a comprobar, la cantidad de cifras a chequear y si éstas deben ser pares o impares:
* paso 0: 1 cifra, empieza en 0 y debe ser par * paso 1: 2 cifras, empieza en 1 y deben ser impares * paso 2: 3 cifras, empieza en 3 y deben ser pares ...
Si la comprobación es correcta se vuelve a llamar a sí misma incrementando el paso en 1 y retornando la salida de esta última llamada.
Si, en cambio, ha llegado al final de la cadena, retorna un 1.
Si no se cumple la validación, retorna un 0.
Después de todo el proceso, si tienes un 1 es que el número es M-Alternante y si es un 0... pues no.
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Sinó, puedes hacer 2 bucles encadenados. El mayor va contando desde i=1 hasta ..., y el otro cuenta desde j=1 hasta i. Así, j es 1, 2, 3, etc. Si i es par, compruebas que sea par; si i es impar, compruebas que sea impar (o al revés).
Es una idea, para saltarse la recursividad.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
AYUDA CON PROGRAMA
Diseño Gráfico
|
Luisango
|
1
|
2,467
|
17 Abril 2005, 13:25 pm
por Sub_Cero
|
|
|
ayuda con mi programa
Programación Visual Basic
|
nitrox
|
2
|
2,369
|
31 Julio 2005, 00:48 am
por Slasher-K
|
|
|
ayuda programa!!
Programación C/C++
|
rodrigo_103
|
4
|
3,386
|
16 Septiembre 2012, 21:58 pm
por rodrigo_103
|
|
|
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
|
Zodiak98
|
1
|
6,194
|
8 Diciembre 2013, 01:51 am
por Eleкtro
|
|