En este post de programación inicial con C# programando normalmente en Visual Studio vamos a ver cómo determinar si un número es par o impar.
Para esto vamos a usar el operador módulo y comparar el resultado. También vamos a ver otra manera de hacerlo sin el operador módulo, o sea que básicamente veremos dos maneras de saber si un número es par o impar con C#.
Este operador te dice el sobrante que queda al dividir 2 números de manera entera, es decir, como si los decimales no existieran.
Por ejemplo, si dividimos 5 entre 2 sabemos que el resultado es 2.5; pero si lo dividimos sin decimales podemos decir que 5 entre 2 es 2, y sobra 1.
Pues exactamente ese sobrante nos va a ayudar a saber si un número es par o impar en Visual Studio, ya que si el sobrante es 1 el número será impar, y si no, será par.
Nota: siempre vamos a dividir entre 2, sin importar el número dividido. Por cierto, el módulo se representa con el operador %
.
Entonces veamos el código para saber si un número es par o impar:
Console.WriteLine("Escribe un número: ");
long numero = Convert.ToInt64(Console.ReadLine());
long sobrante = numero % 2;
if (sobrante == 0)
{
Console.WriteLine("El número es par");
}
else
{
Console.WriteLine("El número es impar");
}
Como dije anteriormente, el sobrante siempre será un 1 o un 0 al dividir entre 2. Y si es cero entonces es par, pero si no, es impar.
Podemos usar el truco de comparar números a nivel binario con el operador AND y obtener el resultado. Eso está mejor explicado en este post: par o impar con comparaciones lógicas.
No lo explico aquí porque sería repetitivo, así que si te quedan dudas simplemente lee el post anteriormente mencionado.
Console.WriteLine("Escribe un número: ");
long numero = Convert.ToInt64(Console.ReadLine());
long sobrante = numero & 1;
if (sobrante == 0)
{
Console.WriteLine("El número es par");
}
else
{
Console.WriteLine("El número es impar");
}
Al final el resultado, de nuevo, será 1 o 0; pero ambas cosas son totalmente distintas. En el primer caso usamos el operador módulo y en el segundo caso usamos operaciones binarias.
El código completo que además prueba ambos métodos queda así:
using System;
namespace ParImpar
{
class Program
{
static void Main(string[] args)
{
// https://parzibyte.me/blog
Console.WriteLine("Escribe un número: ");
long numero = Convert.ToInt64(Console.ReadLine());
long sobrante = numero % 2;
if (sobrante == 0)
{
Console.WriteLine("El número es par");
}
else
{
Console.WriteLine("El número es impar");
}
SinModulo();
}
static void SinModulo()
{
Console.WriteLine("Escribe un número: ");
long numero = Convert.ToInt64(Console.ReadLine());
long sobrante = numero & 1;
if (sobrante == 0)
{
Console.WriteLine("El número es par");
}
else
{
Console.WriteLine("El número es impar");
}
}
}
}
Toma en cuenta que puse el código de la operación de bits en un método nuevo para separar los conceptos, no es obligatorio tenerlo así. Al probarlo, la ejecución es correcta:
Y así es como determinamos si un número es impar o par en C#.
También puedes ver un video explicativo:
Para terminar este post te dejo con más tutoriales de C# en mi blog.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.