Maison  >  Article  >  Java  >  Comment inverser uniquement les nombres impairs dans un entier en Java ?

Comment inverser uniquement les nombres impairs dans un entier en Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 17:31:03468parcourir

How to Reverse Only Odd Numbers in an Integer in Java?

Java : inverser une valeur Int sans utiliser de tableau

Explication du code :

L'extrait de code que vous avez fourni utilise une boucle while pour inverser une valeur entière. Voici comment cela fonctionne :

  • Multiplication ReverseNum : La variable reverseNum est initialement mise à 0. A chaque itération de la boucle, on multiplie reversedNum par 10 pour "décaler" l'existant numéro un inversé vers la gauche.
  • Input Modding : Nous calculons saisissez % 10 pour extraire le chiffre le plus à droite du numéro saisi. Cela nous donne le chiffre à ajouter au nombre inversé.
  • Ajout à ReversedNum : Le chiffre extrait le plus à droite est ajouté à reverseNum pour former le nombre inversé.
  • Division de l'entrée : Enfin, nous divisons le nombre saisi par 10 pour supprimer le chiffre le plus à droite et continuons le processus avec le reste chiffres.

Inverser uniquement les nombres impairs :

Pour inverser uniquement les nombres impairs dans un entier donné, vous pouvez suivre les étapes suivantes :

  • Séparez les chiffres pairs et impairs en différentes variables.
  • Inversez les chiffres impairs en utilisant ce qui précède méthode.
  • Combinez les chiffres impairs inversés avec les chiffres pairs d'origine.

Exemple de code :

<code class="java">public static int reverseOdd(int input) {
    int even = 0;
    int odd = 0;

    // Separate even and odd digits
    while (input > 0) {
        int digit = input % 10;
        if (digit % 2 == 0) {
            even = even * 10 + digit;
        } else {
            odd = odd * 10 + digit;
        }
        input /= 10;
    }

    // Reverse odd digits
    odd = reverseInt(odd);

    // Combine reversed odd and original even digits
    return even + odd;
}

public static int reverseInt(int input) {
    long reversedNum = 0;
    long input_long = input;

    while (input_long != 0) {
        reversedNum = reversedNum * 10 + input_long % 10;
        input_long /= 10;
    }

    if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE) {
        throw new IllegalArgumentException();
    }
    return (int) reversedNum;
}</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn