Syracuse

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 943 fois - Téléchargée 34 fois

Contenu du snippet

selon syracuse, si un nombre est pair, on le divise par 2. si il est impair, on le multiplie par 3 et on ajoute 1.

ce prog montre la récursivité, et calcule le nombre d etapes et la hauteur maximum que le nombre atteint.

Source / Exemple :


#pragma hdrstop

#pragma argsused

#include <conio.h>
#include <iomanip.h>
#include <iostream.h>
int syracuse(int n, int *hauteur) ;
int _syracuse(int n, int *hauteur) ;

void main(void)
    {
    int n ;
    int hauteur ;
    int etapes ;

    cout << "************Syracuse************" << endl ;
    cout << endl << "entrez un nombre : " ;
    cin >> n ;

    etapes = syracuse(n, &hauteur) ;

    cout << endl << "hauteur : " << hauteur ;
    cout << endl << "etapes : " << etapes ;

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

int syracuse(int n, int *hauteur)
    {

  • hauteur = n ;
return _syracuse(n, hauteur) ; } int _syracuse(int n, int *hauteur) { if (n == 1) return 0 ; if (n%2) // impair { n = n*3+1 ; if (n> *hauteur)
  • hauteur = n ;
} else // pair n = n/2 ; cout << endl << "nombre : " << n ; return _syracuse(n, hauteur)+1 ; }

A voir également

Ajouter un commentaire

Commentaires

mirs
Messages postés
1
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
9 avril 2003
-
allo
cs_nEUrOne
Messages postés
41
Date d'inscription
dimanche 17 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2004
-
en gros, ca servait à quoi, construire des formes pyramidales ?
24Karas
Messages postés
233
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
5 juillet 2008
-
T'a raison Goldeneye Syracuse est une ville sicilienne. Mais il y en a une au USA aussi. Voila
Sinon ton prog Loraine il a l'air bon.
@++
loraine9999
Messages postés
6
Date d'inscription
dimanche 12 janvier 2003
Statut
Membre
Dernière intervention
23 janvier 2003
-
alors... si un nombre est pair tu fais n/2 et si il est impair tu fais n*3+1 : exemple

3 -> impair donc -> 3*3+1 = 10
10 -> pair donc -> 10/2 = 5
5 -> impair donc -> 5*3+1 = 16
16 -> pair donc -> 16/2 = 8
8 -> pair donc -> 8/2 = 4
4 -> pair donc -> 4/2 = 2
2 -> pair donc -> 2/2 = 1

avec n importe quel nombre tu arriveras a la fin a 1.
dans mon prog je calcule combien d etapes il faut a un nombre que tu saisi pour arriver a ce resultat, et la hauteur max atteinte comme ici 16.

pour syracuse aucune idée si c'est une ville sicilienne sorry ;-)
cs_GoldenEye
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
2 -
Tu m'expliques le problème de départ plus clairement ? Syracuse est une ville sicilienne non ?

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.