elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderadores: Littlehorse, Eleкtro)
| | |-+  Saber si un número es par
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Saber si un número es par  (Leído 9,844 veces)
Shell Root


Desconectado Desconectado

Mensajes: 3.519



Ver Perfil WWW
Saber si un número es par
« en: 8 Marzo 2011, 20:58 »

Pues hoy en la clase de lógica y programación, nos pusieron un ejercicio de como saber si un número es par. Pero tenemos varias limitaciones.
1. Estamos viendo el condicional IF
2. No podemos usar la función MOD

Sí puedo hacerla fácilmente, pero usando un bucle cosa que tampoco puedo porque no hemos llegado a esa sentencia. No puedo adelantarme...

Hay algún método de calcularlo. Sabiendo qué:
(4 / 2) = (2 / 2) = 0 --> PAR

Pero si es un número por ejemplo 84, tengo que hacer muchas operaciones. Alguna idea?

Edit: Otra cosa sería dividir en número entre 2 y validar si es un número entero. Pero como sería eso en un algoritmo pseudocódigo. :S


« Última modificación: 8 Marzo 2011, 21:14 por Shell Root » En línea

Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Saber si un número es par
« Respuesta #1 en: 8 Marzo 2011, 21:17 »

Para saber si es un numero entero vas a tener q usar el mod, yo tambien se como hacerlo de otras formas pero no han dado bucles decis..


En línea

Shell Root


Desconectado Desconectado

Mensajes: 3.519



Ver Perfil WWW
Re: Saber si un número es par
« Respuesta #2 en: 8 Marzo 2011, 21:21 »

No, si pudiera usar un bucle lo haría yo mismo. Pero joder, siempre me enseñaron usando la función MOD! Ahora no puedo usarla.
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Saber si un número es par
« Respuesta #3 en: 8 Marzo 2011, 21:26 »

Una solución bastante... <insértese algo aquí> es lo siguiente.

Si tu tienes un número representado en binario, será par si el último bit (LSB, bit de menor peso), es 0. Impar en caso contrario.

Entonces, puedes probar a usar una AND bit a bit, (En C/C++ sería el &, que no el &&) para saber si el LSB bit está a 0.
En línea

Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Saber si un número es par
« Respuesta #4 en: 8 Marzo 2011, 21:27 »

Akai, el profesor no le dejara hacer eso xD
En línea

Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Saber si un número es par
« Respuesta #5 en: 8 Marzo 2011, 21:32 »

Ya se como es, usa un tipo q no use decimales entonces haces asi mira esto en vb6 q fue lo primero q agarre a mano para mas rapido:

Código
  1.  
  2. Private Sub Command1_Click()
  3. Dim num As Integer, num2 As Integer
  4. num = CInt(Text1.Text)
  5. num2 = num / 2
  6.  
  7. If num = num2 * 2 Then
  8. MsgBox "bien"
  9. Else
  10. MsgBox "mal"
  11. End If
  12.  
  13. End Sub
  14.  
En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Saber si un número es par
« Respuesta #6 en: 8 Marzo 2011, 21:34 »

Por qué no? No puedes usar el módulo, tampoco bucles, qué otra solución tienes que recurrir a la aritmética binaria?

Bueno, Se me ocurre otra, Si divides al número entre la mitad de si mismo y da 2, es que es par. Si da diferente, es impar. Eso SIEMPRE Y CUANDO trates con enteros, debido a que en impares, se cancela el resto, y entonces tu número/2 no sería exactamente la mitad


Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Si, esa era otra xDDDDDD
En línea

Shell Root


Desconectado Desconectado

Mensajes: 3.519



Ver Perfil WWW
Re: Saber si un número es par
« Respuesta #7 en: 8 Marzo 2011, 21:39 »

Lo de la aritmética binaría me suena...
Y cabe decir que es un algoritmo en pseudocódigo.
En línea

criskapunk

Desconectado Desconectado

Mensajes: 278



Ver Perfil
Re: Saber si un número es par
« Respuesta #8 en: 10 Marzo 2011, 01:53 »

Me resultó curioso este ejercicio y encontré otra forma para hacerlo (No se me ocurría :P).

Se sabe que todo número positivo elevado a cualquier número entero da un resultado positivo. En cambio, si el número es negativo, el resultado dará positivo en caso de que el exponente sea par, y negativo si el exponente es impar. Entonces podríamos hacer lo siguiente:

Código
  1. n = int(raw_input("Ingrese un numero: "))
  2.  
  3. if (-1) ** n > 0:
  4.    print "Es par"
  5. else:
  6.    print "Es impar"

Un saludo :P

En línea

Shell Root


Desconectado Desconectado

Mensajes: 3.519



Ver Perfil WWW
Re: Saber si un número es par
« Respuesta #9 en: 10 Marzo 2011, 02:09 »

Wooow, a ver a ver, esto es lo que necesito, pero no lo entendí. XD

Supongamos que tenemos el número "4", si lo elevamos a la -1, que daría:
Código
  1. 4 ^ (-1) = 0,25

Ahora un número como el "3", si lo elevamos a la -1, que daría:
Código
  1. 3 ^ (-1) = 0,333333333

WTF?

Edit:
Perdón es alrreves :D
« Última modificación: 10 Marzo 2011, 02:21 por Shell Root » En línea

criskapunk

Desconectado Desconectado

Mensajes: 278



Ver Perfil
Re: Saber si un número es par
« Respuesta #10 en: 10 Marzo 2011, 02:18 »

Lo estas haciendo al revés :P

El -1 lo tenés que usar como base y el número del cual querés calcular si es par o impar, como exponente.

Dado que el -1 es negativo, el signo del resultado va a depender del exponente (El número que vos ingresas). Si es par, el resultado será positivo y si es impar el resultado será negativo.

Un saludo

Edit:
jajaja :P Espero que te haya servido.

« Última modificación: 10 Marzo 2011, 02:27 por criska » En línea

Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Saber si un número es par
« Respuesta #11 en: 10 Marzo 2011, 02:46 »

Pero no te sirvio la q puse yo Shell Root? talvez es la mas simple y mas creible para los profesores..
En línea

Shell Root


Desconectado Desconectado

Mensajes: 3.519



Ver Perfil WWW
Re: Saber si un número es par
« Respuesta #12 en: 10 Marzo 2011, 02:52 »

Pero estas usando funciones de enteros.
En línea

Edu


Desconectado Desconectado

Mensajes: 1.082


Ex XXX-ZERO-XXX


Ver Perfil
Re: Saber si un número es par
« Respuesta #13 en: 10 Marzo 2011, 03:06 »

Como? dices por el Cint(text1.text) ? eso es solo para no multiplicar un string lo convierto a su tipo corresponiente, pero porq para probarlo lo hice en un textbox sino lo haces asi:

Código
  1. bool EsPar(int num) {
  2.  
  3. int num2 = num / 2;
  4.  
  5. if (num == (num2 * 2)) return true;
  6. else return false;
  7. }
  8.  

Ya se q sabes muchisimo mas q yo pero no entiendo porq no sirve xD
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Saber numero par !
Programación General
Robokop 5 947 Último mensaje 27 Diciembre 2005, 03:08
por Casidiablo
Como saber el numero fijo de un numero 902
Dudas Generales
BloCKeadO 0 2,310 Último mensaje 19 Septiembre 2006, 13:29
por BloCKeadO
Como saber el Numero de...
Dispositivos Móviles (PDA's, Smartphones, Tablets)
diaz1992 3 878 Último mensaje 19 Mayo 2008, 05:27
por Gusan0r
Saber si es numero o caracteres en C++
Programación C/C++
tizerlks1 3 1,200 Último mensaje 16 Septiembre 2013, 06:35
por tizerlks1
saber primer numero y ultimo numero [solucionado]
Bases de Datos
basickdagger 4 318 Último mensaje 3 Septiembre 2014, 17:19
por basickdagger
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines