Determination du palindrome numerique.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 517 fois - Téléchargée 27 fois

Contenu du snippet

Bon ce petit source illustre un théorème mathématique qui indique que si un nombre n'est pas lui-même un palindrome, il suffit de lui ajouter le nombre représenté par ses chiffres dans l'ordre inverse et ainsi de suite jusqu'à obtenir un palindrome. Il est récursif et malgré une gestion d'erreurs assez poussée il est encore trés court, je le trouve plutôt élégant alors voilà !
Prend un nombre en argument et retourne son palindrome en indiquand les étapes successives.

Source / Exemple :


import java.text.*; //pour pouvoir utiliser le StringBuffer et donc "retourner" le nombre.

public class palindrome {
    
    public static void main(String[] args) {       
        try {
            palindrome p=new palindrome();
            p.cherchePalindrome(Long.parseLong(args[0]));   
        }
        catch(NumberFormatException e) {
            System.out.println("Un nombre est requis en parametre.");
        }
        catch(ArrayIndexOutOfBoundsException e){
            System.out.println("Un parametre est requis.");
        }
        catch(IllegalStateException e) {
            System.out.println("Le nombre est devenu trop grand.");
        }
    }
        
    public boolean cherchePalindrome(long nombre) {
        
        System.out.println(nombre);  
        if (nombre<0) throw new IllegalStateException(" devenu trop grand");
        long nombreRetourne=Long.parseLong((new StringBuffer(Long.toString(nombre))).reverse().toString());
        
        if (nombre==nombreRetourne) {
            System.out.println("est palindrome !");
            return true;
        }        
        else {
           System.out.println(" -> + " + nombreRetourne); 
           return cherchePalindrome(nombre+nombreRetourne);           
        }                
    }       
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.