IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Inverser les chiffres d'un nombre


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Inverser les chiffres d'un nombre
    Bonjour a tous.
    Rapide présentation, je suis un étudiant et j'ai du changer de faculté pour être dans une filière qui me correspond. Malheureusement, dans mon ancienne faculté, il n'y avait aucun cours de Matlab, ce qui n'est pas le cas de la faculté ou je suis maintenant, j'ai donc quelque problèmes.

    Notre professeur nous a poser un problème que l'on doit résoudre sur Matlab, et je ne sais pas du tout quoi faire, si vous pouvez me donner une piste...
    Pour ce problème, il faut que l'utilisateur donne un nombre premier, et que ce nombre entier soit inversé. Par exemple, si l'utilisateur donne le nombre 123, le résultat du programme devra être 321. Et il est interdit de convertir les nombre en chaîne de caractère.

    Si vous pouvez m'aider, je vous en remercie.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Tu peux utiliser la méthode classique des divisions successives et de l'application du modulo par 10.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci de cette réponse, mais j'ai bien peur de ne pas bien l'avoir comprise...

  4. #4
    Membre confirmé
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Points : 639
    Points
    639
    Par défaut
    Division successive : tu regardes si ton nombre N est divisible par des nombre allant de 2 à N-1. Si tu n'as pas de reste, ça veut dire que ton nombre n'est pas premier. Regarder la fonction mod.
    Remarque, tu n'as pas besoin d'aller de 2 à N-1 mais seulement de 2 à sqrt(N) arrondi a l'unité supérieure (le problème est symétrique).

    Pour ce qui est du modulo 10, c'est pour l’inversement de tes nombres (123->321) je pense (pour pouvoir contourner la contrainte de ne pas utiliser les chaînes de caractères)

    Regarde ce que te donne la commande suivante lorsque b=1, b=10, b=100.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    b=[1,10,100];
    for ib=1:numel(b)
        disp(floor(mod(a/b(ib),10)))
    end

  5. #5
    Membre du Club
    Homme Profil pro
    Software engineer
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Software engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Comme l'a si bien dit Winjerome il te faut faire le module 10 de ton entier; je ne connais pas trop le Matlab (ca fait longtemps je l'ai testé) mais là je te propose un algorithme simple pour ton pb fait à la volé. Adapte le à ta synthaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    r = 0;
    val = MonEntier;
    i = 0;
    tantque val <> 0 faire
    debut
      temp = (val mod 10);
      si (i==0) alors
        r = r + temp;
      sinon
       r = (r * 10) + temp;
      fsi
      i++;
      val = val /10;
    fin
    ton entier inversé obtenu est r
    "L'homme ne devient Homme que par éducation."
    "Des pensées sans contenu sont vides, des intuitions sans concepts, aveugles."
    "Une proposition incorrecte est forcément fausse, mais une proposition correcte n'est pas forcément vraie."

    Emmanuel Kant

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éprouvé
    Avatar de ol9245
    Homme Profil pro
    Chercheur
    Inscrit en
    Avril 2007
    Messages
    985
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Avril 2007
    Messages : 985
    Points : 1 158
    Points
    1 158
    Billets dans le blog
    1
    Par défaut
    ah il est mignon cet exo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function N = inverser_chiffres(M)
    N = 0 ;
    while M>0
        N = 10*N + mod(M,10) ;
        M = floor(M/10) ;
    end
    "La vraie grandeur se mesure par la liberté que vous donnez aux autres, et non par votre capacité à les contraindre de faire ce que vous voulez." Larry Wall, concepteur de Perl.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ces réponses, même si je n'arrive pas du tout à avoir quelque chose de potable ! Ol9245, qu'entend tu par function ?

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour,

    Pour function, un petit tour par la FAQ s'impose.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

Discussions similaires

  1. Extraire les chiffres d'un nombre.
    Par kocipia dans le forum Débuter
    Réponses: 7
    Dernier message: 02/01/2014, 19h05
  2. Extraire les chiffres d'un nombre
    Par sali2801 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 07/12/2010, 14h41
  3. Récupérer tous les chiffres d'un nombre
    Par AnozerOne dans le forum Mathématiques
    Réponses: 7
    Dernier message: 16/01/2009, 00h56
  4. prendre les chiffres d'un nombre
    Par mokless dans le forum Débuter
    Réponses: 12
    Dernier message: 12/12/2008, 13h04
  5. Décomposer les chiffres d'un nombre en variables
    Par kryogen dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/04/2008, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo