Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PAIR-IMPAIR RÉCURSIF


Information sur la source

Catégorie :.Net Classé sous : nombre, chiffre, pair, impair, récrusif Niveau : Débutant Date de création : 16/01/2003 Date de mise à jour : 16/01/2003 09:38:14 Vu : 7 420

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note

Description

détermination de la parité d un nombre sans utiliser le modulo
 

Source

  • #pragma hdrstop
  • #pragma argsused
  • #include <conio.h>
  • #include <iomanip.h>
  • #include <iostream.h>
  • int pairImpair(int n) ;
  • void main(void)
  • {
  • int nombre ;
  • int ret ;
  • cout << "entrez un nombre : " ;
  • cin >> nombre ;
  • ret = pairImpair(nombre) ;
  • if (ret == 1)
  • cout << endl << "le nombre " << nombre << " est impair ! " ;
  • else
  • cout << endl << "le nombre " << nombre << " est pair ! " ;
  • cout << endl << "appuyer sur une touche pour terminer..." ;
  • getch() ;
  • }
  • //---------------------------------------------------------------------------
  • int pairImpair(int n)
  • {
  • if (n == 0 || n == 1)
  • return n ;
  • return pairImpair(n-2) ;
  • }
#pragma hdrstop

#pragma argsused

#include <conio.h>
#include <iomanip.h>
#include <iostream.h>

int pairImpair(int n) ;

void main(void)
    {
    int nombre ;
    int ret ;

    cout << "entrez un nombre : " ;
    cin >> nombre ;

    ret = pairImpair(nombre) ;

    if (ret == 1)
        cout << endl << "le nombre " << nombre << " est impair ! " ;
    else
        cout << endl << "le nombre " << nombre << " est pair ! " ;

    cout << endl << "appuyer sur une touche pour terminer..." ;
    getch() ;
    }
//---------------------------------------------------------------------------

int pairImpair(int n)
    {
    if (n == 0 || n == 1)
        return n ;

    return pairImpair(n-2) ;
    }

Commentaires et avis

signaler à un administrateur
Commentaire de GoldenEye le 16/01/2003 16:45:20

J'ai une autre méthode bien plus puissante qui est utilisée pour tout ce qui est temps réel (jeux par exemple):

inline int estPair(int nombre) /* 0 si le nombre est pair et 1 sinon */
return (nombre&1);

Cherchez pourquoi ! (pensez à la base 2 et à l'opération ET logique...)

On peut étendre le calcul à la détermination de l'existence d'un multiple de 2 puissance n

signaler à un administrateur
Commentaire de trinitacs le 16/01/2003 19:14:54

loraine9999 &gt;&gt; A part la récursivité tu fais quoi? Je te signale juste si tu ne le c'est pas mais c qqch de pas très rapide. Mais parfois ça permet de résoudre des problèmes très simplement. Donc il ne faut pas en faire d'overdose :)

J'en ai une autres c'est le modulo de 2 mais faire un modulo est une opération longue pour les pross. Mais bon la méthode avec l'utilisation de l'opérateur & est bien plus rapide.

signaler à un administrateur
Commentaire de GoldenEye le 16/01/2003 20:02:35

Trinitacs : attention, la récursivité est parfois optimale : ex : l'algorithme de tri QuickSort dont la complexité en Nlog(N) est inférieure à celle de toutes les méthodes itératives. Par ailleurs certains problèmes n'ont pas de solution connue en itératif ou très complexe (ce qui ne veut pas dire qu'elle n'existe pas) ex : parcours d'un arbre, algorithmes d'IA comme Alpha Beta etc...

signaler à un administrateur
Commentaire de trinitacs le 18/01/2003 23:52:56

Je n'ai pas dis non plus que la récursivité était à proscrire. J'ai aussi dis que ça permettait parfois de résoudre simplement des problèmes comme tu l'as signalé.

Voilà

signaler à un administrateur
Commentaire de dominion le 06/09/2004 22:25:16

GoldenEye : mets plutôt inline BOOL estPair pour gagner un peu de place mémoire (ben oui vu qu'il n'y a que 2 réponses...)

signaler à un administrateur
Commentaire de tit_toinou le 18/12/2007 18:43:31

Salut,
La recursivité est tout à fait inutile ici !
L'opérateur & fera le travail beaucoup plus vite.

signaler à un administrateur
Commentaire de turnerom le 19/03/2008 15:51:09 1/10

Je me demande si on peut encore faire - rapide.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Strcat avec un chiffre entier [ par Athanor ] Je voudrais concaténer une chaine avec un nombre entier, je sais bien questrcat(nomchaine, 123);ne marche pas, mais même en transformant mon chiffre e Generer un nombre aleatoir en C [ par Snoupy ] Salut à tous, j'ai besoin de générer plusieur nombre aleatoir, mais la source que j'utilise, m'oblige à attendre une seconde entre chaque nombre, car Sélectionner un chiffre dans un nombre ? [ par Telepathmaster ] Bonjour, j'aimerai savoir si il est possible de d&#233;composer un nombre comme 21365489 de fa&#231;on &#224; pouvoir&nbsp; avoir le premier chiffre d Nombre Secret `(Probleme de Proba...) [ par albert0 ] Bonsoir, Voila, je suis en train de faire un algorithme, le but est est de trouve un "Nombre secret" ce nombre secret est gener&#233; par un Random: Trouver le nombre de chiffre dans une chaîne de caractère [ par Dark Revan ] Bonjour, Je suis un débutant en C++ je veux trouver le nombre de chiffre dans une chaîne de caractère à l'aide d'un For et je me demandais s'il y a Chiffre ou lettre ? [ par ralebole ] Bonjour a tousJe voudrais savoir comment faire pour savoir si c'est un nombre ou une chaine des lettresExemple char petibuf[10];la personne rentre nor ofstream, positionnement [ par Metrox ] Salut à tous,mon fichier se compose de la sorte:1 2 3 4 ... (nombre inconnu de chiffre)1' 2' 3' 4' ... (nombre inconnu de chiffre)1'' 2'' 3'' 4'' ... savoir si un string n'est que numérique [ par nord666 ] Bonjour tout le monde!À première vue, utiliser un String pour stocker un chiffre est assez inscenser. Sauf lorsque le nombre maximal de caractère pour nombre de chiffre d'un nombre [ par tomalille ] Bonjour,je cherche en C&nbsp;comment conna&#238;tre le nombre de chiffres utilis&#233;s pour repr&#233;senter un nombre. ex: 2345 -&gt; 4, 546-&gt;3.M Connaitre le nombre de valeurs dans un fichier [ par Jarod1980 ] Salut,J'ai en fait deux petits probl&#232;mes que je n'arrive pas &#224; r&#233;soudre. Je voudrais ouvrir un fichier contenant uniquement des valeurs


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,201 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.