- Elegir un numero aleatorio.
- Si es par, dividirlo entre 2; si es impar, multiplicarlo por 3 y agreguele 1.
- Obtenga enteros sucesivamente repitiendo el proceso hasta que el resultado sea igual a 1.
Ejemplo:
Empezamos por crear un nuevo proyecto.Ejemplo:
Numero elegido: 3
3 (impar) = 10
10 (par) = 5
5 (impar) = 16
16 (par) = 8
8 (par) = 4
4(par) = 2
2(par) = 1
Seleccionamos "Aplicación de Windows Forms", asignamos un nombre y damos clic a Aceptar.
Para resolver este algoritmo es necesario utilizar un ciclo. Ya que el proceso se repetirá mientras que no obtengamos un 1 como resultado. Para esto se utilizara el ciclo "while".
La funcionalidad del el ciclo "while" consiste en que mientras no se cumpla alguna sentencia que le asignemos se estará repitiendo un proceso por un numero indefinido de veces.
Dentro del código del botón se hará lo siguiente.
El algoritmo en C# seria el siguiente:
int contador=0;
Int64 numero=Convert.ToInt32(txNumero.Text), temporal, par;
Contenedor.Items.Clear();
if (numero > 0) //Utilizado para saber si los números son positivos
{
txNumero.Clear(); //Limpiar textBox
txNumero.Focus(); //Pasar el control de nuevo al textBox
while (numero != 1) //Mientras el resultado o numero sea diferente de 1
{
contador++;
temporal = numero; //Almacena numero
par = numero % 2; // saca el residuo del numero entre 2
if (par == 0) //Si el residuo es igual a 0 es un numero par
{
numero = numero / 2;
Contenedor.Items.Add(contador + ".- " + temporal + "=" + numero);
}
else //Si no es par es impar
{
numero = (numero * 3) + 1;
Contenedor.Items.Add(contador + ".- " + temporal + "=" + numero);
}
}
}
Contador(opcional): Utilizado para contar el numero de veces que se realizo la operación hasta que llegue a 1
numero: Utilizado para almacenar el numero inicial y los resultantes tras la operación
temporal: Utilizado para no perder el numero anterior a la operación
par: Utilizado para saber si el numero es par o impar
Porque int64?
La razón por la que estas 3 variables son "int 64" es porque en veces los numero resultantes son demasiado grandes, y no podrían ser almacenados en un "int16", o un "int32".
¿No saves descargar nuestros proyectos?
No hay comentarios:
Publicar un comentario