Como determinar si un numero es capicua en android studio

Continuando con los ejercicios hoy veremos otro ejemplo básico de como determinar si un numero es capicúa en android studio, esta sera una guía super básica y fácil de entender para todos los novatos.

 

Como Determinar si un Numero es capicúa en Android Studio

 

Cosas que deberías saber sobre el factorial 
Una palabra capicúa o número palíndromo en matemática es un número que se lee igual de izquierda a derecha que de derecha a izquierda.

Por ejemplo, los números 22, 111111, 343, 5665 y 17371 son capicúas. El término procede de la expresión catalana cap i cua (cabeza y cola)

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="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="47dp"
        android:gravity="center"
        android:text="Número Capicúa"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/edtxtNumero"
        android:layout_width="90dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView"
        android:layout_marginTop="13dp"
        android:layout_toEndOf="@+id/textView2"
        android:ems="10"
        android:gravity="center"
        android:inputType="number" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/edtxtNumero"
        android:layout_alignParentStart="true"
        android:layout_marginStart="129dp"
        android:gravity="center|right"
        android:text="Número :   "
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="17dp" />

    <Button
        android:id="@+id/btnVerificar"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_alignStart="@+id/textView2"
        android:layout_below="@+id/edtxtNumero"
        android:layout_marginTop="32dp"
        android:background="#3F51B5"
        android:text="VERIFICAR"
        android:textColor="#FFFFFF" />

    <TextView
        android:id="@+id/txtResultado"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignEnd="@+id/btnVerificar"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/btnVerificar"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="17dp" />
</RelativeLayout>

 

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

MainActivity

 

public class MainActivity extends AppCompatActivity {
    EditText numero;
    Button verificar;
    TextView resultado;
    AlertDialog.Builder dialogo;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        numero = (EditText) findViewById(R.id.edtxtNumero);
        verificar = (Button) findViewById(R.id.btnVerificar);
        resultado = (TextView) findViewById(R.id.txtResultado);

        verificar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(verificar.getText().toString().equals("Limpiar")){
                    numero.setText("");
                    numero.setEnabled(true);
                    numero.requestFocus();
                    verificar.setText("Verificar");
                    resultado.setText("");
                }else{
                    if(numero.getText().length() == 0){
                        dialogo = new AlertDialog.Builder(MainActivity.this);
                        dialogo.setTitle("Error");
                        dialogo.setMessage("Ingresar el número");
                        dialogo.setCancelable(false);
                        dialogo.setPositiveButton("Cerrar", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialogo, int id) {
                                dialogo.cancel();
                                numero.requestFocus();
                            }
                        });
                        dialogo.show();
                    }else{
                        if(numero.getText().length() <= 2){
                            dialogo = new AlertDialog.Builder(MainActivity.this);
                            dialogo.setTitle("Error");
                            dialogo.setMessage("Ingresar un número mayor de dos dígitos");
                            dialogo.setCancelable(false);
                            dialogo.setPositiveButton("Cerrar", new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialogo, int id) {
                                    dialogo.cancel();
                                    numero.requestFocus();
                                }
                            });
                            dialogo.show();
                        }else{
                            int invertido = 0;
                            int residuo;
                            int numero = Integer.parseInt(MainActivity.this.numero.getText().toString());
                            while(numero != 0){
                                residuo = numero % 10;
                                invertido = invertido * 10 + residuo;
                                numero = numero / 10;
                            }
                            if(String.valueOf(invertido).equals(MainActivity.this.numero.getText().toString())){
                                resultado.setText("El número " + MainActivity.this.numero.getText().toString() + " es capicúa");
                            }else{
                                resultado.setText("El número " + MainActivity.this.numero.getText().toString() + " no es capicúa");
                            }
                            MainActivity.this.numero.setEnabled(false);
                            verificar.setText("Limpiar");
                        }
                    }
                }
            }
        });
    }
}

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.

Descargar Aquí.

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