Unisciel algoprog – Autour de Kaprekar [th07] 4
3. ´
Evaluer la s´equence de chiffres, d’o`u l’entier n2(le plus grand).
4. Renverser la s´equence de chiffres.
5. ´
Evaluer la s´equence de chiffres, d’o`u l’entier n1(le plus petit).
6. Retourner l’entier n2−n1.
Exemple
n = 1235648
==> cs=[8,4,6,5,3,2,1], nc=7
==> trierChiffres(cs)
==> cs=[1,2,3,4,5,6,8], nc=7
==> n2 = 8654321
==> renverserChiffres(cs)
==> cs=[8,6,5,4,3,2,1], nc=7
==> n1 = 1234568
==> n2-n1 = 8654321-1234568 = 7419753
(0.5 point) D´efinissez la constante TMAX=10 puis le type Chiffres comme ´etant :
•Soit, une structure contenant un tableau de TMAX entiers et un entier nc repr´esen-
tant le nombre de chiffres effectif dans le tableau.
•Soit, un vecteur dynamique d’entiers (type vector<int>).
(0.5 point) ´
Ecrivez une proc´edure ajouterChiffre(cs,val) qui ajoute un chiffre de
valeur val `a la fin d’un Chiffres cs. Exemple :
Soient: cs=[8,1,2,2], nc=4
Après: ajouterChiffre(cs,6)
Alors: cs=[8,1,2,2,6], nc=5
(1 point) D´eduisez une proc´edure decomposer(n,cs) qui d´ecompose un entier positif n
en ses chiffres (base 10) dans un Chiffres cs. Exemple : Pour 62218, la proc´edure doit
initialiser cs avec [8,1,2,2,6] et l’entier nc avec 5.
(1 point) Dualement, ´ecrivez une fonction evalChiffres(cs) qui calcule et renvoie la
valeur de l’entier repr´esent´e par un Chiffres cs. Exemple :
Soient: cs=[8,0,2,2,6], nc=5
evalChiffres(cs) ==> 62208
(0.5 point) ´
Ecrivez une proc´edure afficherChiffres(cs) qui affiche un Chiffres cs
en affichant chacun de ses chiffres.