Saber si un número es par

Iniciado por Shell Root, 8 Marzo 2011, 20:58 PM

0 Miembros y 2 Visitantes están viendo este tema.

criskapunk

#10
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.


Edu

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

Shell Root

Pero estas usando funciones de enteros.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Edu

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 (csharp) [Seleccionar]

bool EsPar(int num) {

int num2 = num / 2;

if (num == (num2 * 2)) return true;
else return false;
}


Ya se q sabes muchisimo mas q yo pero no entiendo porq no sirve xD

Shell Root

Pero es que no entiendo lo que intentas hacer, supongo que como es una variable entera, solo tomar los valor antes de la coma, es decir...

3/2 = 1,5 así que solo tomará el valor de 1, o me equivoco?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Edu

Claro, otro ejemplo con el q se me ocurrio fue con 5.
num = 5
num2 = 5 / 2  pero esto no va a dar 2,5 sino q va a dar 2

y si 5 es distinto a 2 * 2 q es 4, entonces es porq 5 es impar

Pero con el numero a ver.. 84..
num = 84
num2 = 84 / 2 q es 42 entonces si q dejara el 42 ya q es entero y entra en el int

y como 42 * 2 es 84 entonces es par

Shell Root

Bueno, he aquí el problema... Hacedlo en pseudocodigo. :p
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Edu

No se usar el pseudocodigo, no he ido a la universidad todavia pero vs sabes programacion q te esta pasando? xD lee el codigo en voz alta y lo anotas a lo q dices xD

criskapunk

Usando PSeInt, así queda el código de XXX-ZERO-XXX.

Proceso ParOImpar
   Leer n;
   Si n = TRUNC(n / 2) * 2 Entonces
      Escribir "El numero es par"
   Sino
      Escribir "El numero es impar"
   FinSi
FinProceso

Tuve que usar la función TRUNC(), la cual devuelve la parte entera de la expresión entre paréntesis dado que no hay ningún operador para hacer la división entera :P

Un saludo

Shell Root

A eso es lo que me refiero, no puedo usar funciones. Pero creo que pseudocodigo la división que toma la parte entera es con el operador \. Así que ahora también me funciona :D
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.