Calcular numeros impares, de 0 a n.

Iniciado por Vicks, 20 Febrero 2012, 21:30 PM

0 Miembros y 1 Visitante están viendo este tema.

Vicks

Necesito mostrar números impares de 0 a n. PERO sin usar el operador módulo (%).

Estoy comiendome el tarro y de momento no se me ha ocurrido nada útil.  :o



Akai


DickGumshoe

#2
Imagínate que quieres elevar (-1) a un número. Si éste es impar, el resultado será de nuevo (-1), pero, si es par, el resultado será positivo, 1.

Así, puedes obtener los números impares. Ahora pásalo a C de manera que obtengas los números impares de 0 a n, como te piden en el ejercicio.

Saludos.

EDITO: Se me olvidó comentar que eso se aplica para el valor absoluto del número.

Karcrack

@DickGumshoe: Eso es como matar moscas a cañonazos. Es todo mucho más sencillo.

El_Java

Venga, una pista, si sabes distintos sistemas de numeración deberías saber hacerlo y te sentirás tonto por no haber caido antes cuando lo sepas ;)


soyloqbuskas

Esto es mucho mas facil....
El numero de impares entre 0 y n es n/2 redondeado hacia arriba.
ejemplo: n=8 numero de impares= 4 (1, 3, 5, 7)
              n=9 numero de impares=redondeo(4,5)=5 (1,3,5,7,9)

Un saludo.
"Si tienes 1 manzana y yo tengo otra manzana...
y las intercambiamos, ambos seguiremos teniendo 1 manzana.
Pero...si tu tienes 1 idea y yo tengo otra idea...
y las intercambiamos, ambos tendremos 2 ideas."


George Bernard Shaw

do-while

Piensa un poco hombre, que por pensar esto no se te va a caer el pelo.

1. Puedes hacer una lista de impares y ver que los relaciona.
2. Usa propiedades de numeros (que pasa si a un par le sumas un par? y si a un par le sumas un impar? y cual es el menor natural par? e impar? ...)

¡Saludos!

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

rir3760

Cita de: soyloqbuskas en 21 Febrero 2012, 02:36 AMEl numero de impares entre 0 y n es n/2 redondeado hacia arriba.
ejemplo: n=8 numero de impares= 4 (1, 3, 5, 7)
              n=9 numero de impares=redondeo(4,5)=5 (1,3,5,7,9)
Para que la expresión solo utilice enteros se puede cambiar a "(N + 1) / 2".

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

Karcrack

¿En serio? Se me ocurren sin pensar dos formas mucho más sencillas:
La primera reemplazar el modulo 2 por un simple and 1 que creo que es a lo que se refería El_Java[/li][/list].
Y la segunda que seguro es que tú necesitas es variando el bucle for haciendo que el contador suba de 2 en dos...

Xandrete

Joder, casi nos matamos aquí por decidir la manera de encontrar los números impares entre 0 y n. No me imagino las discusiones a la hora de programar una función que compruebe si un grafo contiene un ciclo hamiltoniano.