Bonjour, cliquez-ici pour vous inscrire et participer au forum.
  • Login:



+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Nombre pair [C]

  1. Herr_Moncef

    Date d'inscription
    avril 2007
    Âge
    33
    Messages
    83

    Wink Nombre pair [C]

    BONSOIR
    je connais plusieurs méthodes pour déterminer si un nombre n est pair en langage C en utilisant la division / , le modulo % ,soustraire 2 plusieurs fois avec une boucle jusqu'à l'obtention d'un 0 ou d'un 1 et la dernière est par la méthode de Gladbach .
    quelqu'un connaîtrait une autre méthode ?
    Merci d'avance

    -----

     


    • Publicité



  2. zoup1

    Date d'inscription
    juillet 2004
    Localisation
    Paris
    Âge
    53
    Messages
    3 783

    Re : Nombre pair [C]

    tu dois egalement pouvoir utiliser les opération logique et faire un &
    ou encore il me semble qu'il existe une funcion en C qui s'appelle odd et qui dit si un nombre est impair (il faudrait vérifié tout de même que cette fonction existe)
    on doit pouvoir le faire facilement également avec les fonctions de décalage (à droite ou à gauche)
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
     

  3. Herr_Moncef

    Date d'inscription
    avril 2007
    Âge
    33
    Messages
    83

    Re : Nombre pair [C]

    pourrais tu me donner un exemple ? parce que je ne vois pas comment faire .
    merci .
    ps : c'est goldbach et non münchen gladbach
     

  4. invite79115743

    Date d'inscription
    novembre 2005
    Localisation
    Nantes
    Âge
    30
    Messages
    151

    Re : Nombre pair [C]

    Dans sa représentation binaire, un nombre est impair si et seulement si son bit de poids faible est 1.
    Par conséquent, pour un entier n,
    n & 1 = 1 si n est impair
    n & 1 = 0 si n est pair
    Some of those tha wear forces, are the same that burn crosses.
     

  5. zoup1

    Date d'inscription
    juillet 2004
    Localisation
    Paris
    Âge
    53
    Messages
    3 783

    Re : Nombre pair [C]

    Sinon avec les décalages cela donne quelque chose comme ça
    (((n >> 1) << 1) == n) renvoie vraie si n est pair, faux sinon
    Mais les décalages reviennent à faire des divisions ou des mulitplication entières par 2.

    Pourquoi cherches tu toutes les façon de faire cette fonction ?
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.
     


    • Publicité



  6. Dr_cube

    Date d'inscription
    mai 2007
    Âge
    31
    Messages
    22

    Re : Nombre pair [C]

    Oui je confirme, les solutions les plus rapides pour la machine sont les divisions/multiplications par puissances de deux (ou décalage en binaire). Le ET booléen bit à bit est aussi rapide.
    Donc si tu dois choisir une méthode parmis toutes celles-ci, choisis une méthode rapide. Utiliser une boucle pour ce genre de tests est absurde...

    Je pense que le plus lisible et le plus conventionnel en C, c'est l'opérateur modulo (%). Mais libre à toi de faire autrement, tant que ça marche et que c'est rapide.
     

  7. Herr_Moncef

    Date d'inscription
    avril 2007
    Âge
    33
    Messages
    83

    Re : Nombre pair [C]

    c'est une question d'un exercice qui est :
    donner différentes techniques pour tester si un entier n est un nombre pair en langage C .
    Merci pour votre aide .
     


    • Publicité







Sur le même thème :





 

Discussions similaires

  1. nombre premier et nombre impair
    Par nélli dans le forum Mathématiques du supérieur
    Réponses: 11
    Dernier message: 08/01/2016, 18h49
  2. ..::Le nombre d'or::..Un nombre riche
    Par guizmo59 dans le forum TPE / TIPE et autres travaux
    Réponses: 12
    Dernier message: 28/12/2007, 16h45
  3. nombre de diviseurs premiers positifs d un nombre
    Par ludovic BOURGOIN dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 23/09/2007, 18h08
  4. Pair ou impair (jeu)
    Par Pole dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 30/06/2006, 17h06