Nombre de palindromes par jour pour un petit exercice (deux méthodes)

Description du titre: entrez un entier n, veuillez vérifier s'il s'agit d'un "numéro de palindrome"

Nombre de palindromes: nombres cohérents avec avant et arrière
Par exemple:
entrée: 12321
retour: 1 représente le nombre de palindromes

Entrée: 9527
Retour: 0 signifie que ce n'est pas un palindrome

Idée un

Nous devons entrer un entier, puis déterminer si l'entier est un palindrome, s'il s'agit d'un palindrome, sortie 1, sinon sortie 0;
alors nous devons d'abord résoudre le problème d'entrée

  1. Créez une entrée d'objet de classe Scanner et utilisez la méthode nextInt () dans la classe pour obtenir le numéro entré par le clavier.
  2. Ensuite, il faut juger s'il s'agit d'un nombre palindrome. Comment le juger? N'est-ce pas la comparaison du premier chiffre avec le dernier chiffre, et du second chiffre avec l'avant-dernier chiffre. Par analogie, s'il y a une différence, il n'est pas nécessaire de le comparer plus tard, ce n'est pas directement un nombre de palindrome, et 0 est affiché.
  3. Pour le moment, nous ne savons pas combien de chiffres cet entier a, donc nous ne savons pas très bien quand il se terminera. Nous changeons donc notre façon de penser. Nous pouvons utiliser cet entier (9527) et son nombre inversé (7259).) Comparé , si ce n'est pas le même, cela signifie que ce nombre n'est pas un nombre palindrome.
  4. Pour inverser l'entier, nous devons d'abord convertir le type entier int en type chaîne String, afin que chaque chiffre de ce nombre puisse être facilement obtenu via la méthode (charAt ()) de la classe String. Ensuite, placez-le dans l'ordre inverse dans une autre chaîne.
  5. À titre de comparaison, voici une variété d'idées:
  • Utilisez directement la méthode ( equals () ) dans la classe String combinée avec l'opérateur ternaire (ou utilisez if ... else ... pour juger)
  • Convertir en type entier Int, utilisez (==) pour juger
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);
		}

	}
}

Idée deux

De même, lorsque nous résolvons l'entrée, nous pensons que les nombres inférieurs à 0 ne sont pas des nombres palindromes, nous utilisons donc des méthodes mathématiques pour inverser les nombres. Ensuite, jugez si ce sont les mêmes.
Pensée mathématique: utilisez 12321 comme exemple

  • i: 12321% 10 = 1 (récupérez le dernier numéro et enregistrez-le dans la variable temporaire temp)
  • ii: Pour stocker le dernier nombre obtenu dans revese, le nombre total dans revese doit être x10, puis + temp; à ce moment revese = 1;
  • iii: De plus, supprimez le dernier chiffre du numéro d'origine, puis num = num ÷ 10; à ce moment, num = 1232;
  • Puis répétez la première étape: temp = 1232% 10 = 2;
  • Répétez la deuxième étape: revese = revese × 10 + temp = 1 × 10 + 2 = 12;
  • Répétez la troisième étape: num = num ÷ 10 = 123;
  • Puis répétez la première étape: temp = 123% 10 = 3;
  • Répétez la deuxième étape: revese = revese × 10 + temp = 12 × 10 + 3 = 123;
  • Répétez la troisième étape: num = num ÷ 10 = 12;
  • … Boucle à son tour, utilisons la boucle while et
    regardons le code directement!
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;
	
	}
}

Je suppose que tu aimes

Origine blog.csdn.net/weixin_51529267/article/details/112814999
conseillé
Classement