Como calcular el factorial de un numero natural en android studio

Continuando con los ejercicios hoy veremos otro ejemplo básico de como calcular el factorial de un numero natural en android studio, debido a que es un ejercicio que siempre se practica en las aulas de las universidades, colegios e institutos sera una guía super básica y fácil de entender para todos los novatos.

 

Como calcular el factorial de un numero natural en android studio

 

Cosas que deberías saber sobre el factorial 
La función factorial se representa con un signo de exclamación “!” detrás de un número. Esta exclamación quiere decir que hay que multiplicar todos los números enteros positivos que hay entre ese número y el 1.

Ejemplo: Factorial de 4= 1 x 2 x 3 x 4 =24

Factorial de 6= 1 x 2 x 3 x 4 x 5 x 6=720

Fuente:  Factoriales

 

 

Ahora empezaremos con la parte gráfica donde veremos como se muestra en la imagen que esta arriba, solo utilizaremos:

  • 2 textView
  • 1 editText
  • 1 Button

 

A continuación te dejo el código de la parte gráfica:

activity_main

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:gravity="center"
        android:text="Factorial de N Numeros"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:layout_width="90dp"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/edNumero"
        android:layout_below="@+id/textView"
        android:layout_alignParentEnd="true"
        android:gravity="center" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="N Número :   "
        android:id="@+id/textView2"
        android:layout_below="@+id/textView"
        android:layout_toStartOf="@+id/edNumero"
        android:layout_alignBottom="@+id/edNumero"
        android:gravity="center|right"
        android:textSize="17dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/txt"
        android:layout_alignParentEnd="true"
        android:layout_below="@+id/edNumero"
        android:layout_alignParentStart="true"
        android:textSize="17dp"
        android:gravity="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CALCULAR"
        android:id="@+id/bCalcular"
        android:layout_below="@+id/txt"
        android:layout_alignParentEnd="true"
        android:textColor="#FFFFFF"
        android:background="#3F51B5" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_alignParentEnd="true"
        android:layout_below="@+id/bCalcular"
        android:layout_alignParentStart="true"
        android:gravity="center"
        android:id="@+id/tRespuesta"
        android:textSize="17dp" />
</RelativeLayout>

 

Ahora nos vamos a la parte del código en nuestro MainActivity:

 

MainActivity

 

public class MainActivity extends AppCompatActivity {
    EditText edNumero;
    Button bCalcular;
    TextView tRespuesta;
    AlertDialog.Builder dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        edNumero = (EditText) findViewById(R.id.edNumero);
        bCalcular = (Button) findViewById(R.id.bCalcular);
        tRespuesta = (TextView) findViewById(R.id.tRespuesta);

        bCalcular.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(bCalcular.getText().toString().equals("Limpiar")){
                    edNumero.setText("");
                    edNumero.setEnabled(true);
                    edNumero.requestFocus();
                    tRespuesta.setText("");
                    bCalcular.setText("Calcular");
                }else {
                    if (edNumero.getText().length() == 0) {
                        dialog = new AlertDialog.Builder(MainActivity.this);
                        dialog.setTitle("Error");
                        dialog.setMessage("Ingresar el número");
                        dialog.setCancelable(false);
                        dialog.setPositiveButton("Cerrar", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialogo, int id) {
                                dialogo.cancel();
                                edNumero.requestFocus();
                            }
                        });
                        dialog.show();
                    } else {

                        if (edNumero.getText().toString().equals("")) edNumero.setText("0");
                        long factorial = 1;
                        int num = Integer.parseInt(edNumero.getText().toString());
                        for (int i = 1; i <= num; i++) {
                            factorial = i * factorial;
                        }

                        tRespuesta.setText(String.valueOf(factorial));
                        bCalcular.setText("Limpiar");
                        edNumero.setEnabled(false);
                    }
                }
            }
        });
    }
}

Con eso hemos terminado, así que les voy dejar a continuación el enlace de descarga, pero recuerda. Copiar no es lo mismo que comparar.

Nota:

Si vas a descargar la aplicación de ejemplo, te sugiero que primero observes si tienes tu IDE actualizado, pues para este ejercicio nosotros utilizamos Android Studio 3.0.1.
Si usas una versión inferior tal vez tengas problemas al momento de ejecutarlo.

 

También te puede interesar Como calcular la hipotenusa de un triangulo

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat