- #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 ;
- }
#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 ;
}