Exercice langage C : la suite hongroise

Cet exercice a pour but de vérifier les points techniques suivants :

  • Utilisation du while.
  • Lire précisément un énoncé.
  • Modélisation assez complexe d'un problème issu des mathématiques.

Travail à Faire :

On considère la suite hongroise : u(0)=a (a entier)
si u(n) pair alors u(n+1)=u(n)/2 sinon u(n+1)=3*u(n)+1

Pour toutes les valeurs a, il existe un entier N tel que u(N)=1 (conjecture admise).

a) Ecrire un programme qui demande à l'utilisateur de taper a et qui affiche toutes les valeurs de u(n) de n=1 à n=N.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include
using namespace std;
 
int main()
{
int a,n,u;
cout"Tapez la valeur de a : ";cin>>a;
n=0;
u=a;
 
while(u!=1)
        {
        if(u%2==0)u=u/2; else u=3*u+1;
        n++;
        cout"u("n")="uendl;
        }
return 0;
}