Número de palíndromos por día para un pequeño ejercicio (dos métodos)

Descripción del título: ingrese un número entero n, verifique si es un "número palíndromo"

Número de palíndromos: números consistentes con el avance y el retroceso
Por ejemplo:
entrada: 12321
retorno: 1 representa el número de palíndromos

Entrada: 9527
Retorno: 0 significa que no es un palíndromo

Idea uno

Tenemos que ingresar un número entero, y luego determinar si el número entero es un palíndromo, si es un palíndromo, salida 1, si no salida 0;
entonces primero debemos resolver el problema de entrada

  1. Cree una entrada de objeto de clase Scanner y use el método nextInt () en la clase para obtener el número ingresado por el teclado.
  2. A continuación, debemos juzgar si es un número palíndromo. ¿Cómo juzgarlo? ¿No es esa la comparación del primer dígito con el último dígito, y el segundo dígito con el penúltimo dígito? Por analogía, si hay una diferencia, no es necesario compararlo más tarde, directamente no es un número palíndromo y se emite 0.
  3. En este momento, no sabemos cuántos dígitos tiene este número entero, por lo que no estamos muy seguros de cuándo terminará. Por lo tanto, cambiamos nuestra forma de pensar. Podemos usar este número entero (9527) y su número invertido (7259). , si no es el mismo, significa que este número no es un número palíndromo.
  4. Para invertir el entero, primero debemos convertir el tipo de entero int al tipo de cadena String, de modo que cada dígito de este número se pueda obtener fácilmente a través del método (charAt ()) en la clase String. Luego colóquelo en orden inverso en otra cadena.
  5. A modo de comparación, aquí hay una variedad de ideas:
  • Use directamente el método ( equals () ) en la clase String combinado con el operador ternario (o use if ... else ... para juzgar)
  • Convierta a tipo entero Int, use (==) para juzgar
import java.util.Scanner;

public class Test02 {
    
    
	public static void main(String[] args) {
    
    
		// 1. 获取输入的数字
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();

		// 2. 将数字转换为字符串
		String strNumber = String.valueOf(n);

		String result = ""; // 用于保存新数字的字符串

		// 3.倒序遍历每个字符,组成新数字
		for (int i = strNumber.length() - 1; i >= 0; i--) {
    
    
			result += strNumber.charAt(i);
		}

		//System.out.println(result.equals(strNumber) ? 1 : 0);

		if (result.equals(strNumber)) {
    
    
			System.out.println(1);
		} else {
    
    
			System.out.println(0);
		}

	}
}

Idea dos

De manera similar, cuando resolvemos la entrada, pensamos que los números menores que 0 no son números palíndromos, por lo que usamos métodos matemáticos para revertir los números. Luego juzga si son iguales.
Pensamiento matemático: use 12321 como ejemplo

  • i: 12321% 10 = 1 (obtenga el último número y guárdelo en la variable temporal temp)
  • ii: Para almacenar el último número obtenido en revese, el número total en revese debe ser x10, y luego + temp, en este momento revese = 1;
  • iii: Además, borre el último dígito del número original, luego num = num ÷ 10; en este momento, num = 1232;
  • Luego repita el primer paso: temp = 1232% 10 = 2;
  • Repita el segundo paso: revés = revés × 10 + temp = 1 × 10 + 2 = 12;
  • Repita el tercer paso: num = num ÷ 10 = 123;
  • Luego repita el primer paso: temp = 123% 10 = 3;
  • Repita el segundo paso: revese = revese × 10 + temp = 12 × 10 + 3 = 123;
  • Repita el tercer paso: num = num ÷ 10 = 12;
  • … ¡Bucle a su vez, usemos el bucle while y
    miremos el código directamente!
import java.util.Scanner;

public class Program002 {
    
    
	public static void main(String[] args) {
    
    
		// 1. 获取输入的数字
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();

		// 2.判断是否是回文数
		System.out.println(isPalindromeNumber(n));
	}
	
	public static int isPalindromeNumber(int number) {
    
    
		
	        if(number<0)return 0;
	        int revese=0,num=number;
	        while(num!=0){
    
    
	        	int temp=num%10;
	            revese=revese*10+temp;
	            num/=10;
	            
	        }
	      
	       return number==revese ? 1:0;
	
	}
}

Supongo que te gusta

Origin blog.csdn.net/weixin_51529267/article/details/112814999
Recomendado
Clasificación