Aide sur un algorithme

Résolu
spoonatte Messages postés 85 Statut Membre -  
spoonatte Messages postés 85 Statut Membre -
Bonjour,
Salut, j-vx écrire un programme qui permet de lire un nombre et puis le convertir inversé, 164 va être 461, J'ai écrit un programme utilisant les tableaux, mais Je ne sais pas comment l'écrire, sans l'utilisation de tableaux, et merci

1 réponse

nicocorico Messages postés 846 Statut Membre 138
 
Il y aurait cette solution, si j'ai bien compris ton problème :

Val    : Valeur de départ   
ValInv : Résultat   

  Tant que Val > 0 fait   
    ValInv = ValInv * 10   
    ValInv = ValInv + Val modulo 10   
    Val = Val div 10   
  Fin tant que   

L'idée étant de récupérer chaque chiffre de la valeur en décalant vers la droite et de les insérer un à un dans le résultat en les décalant vers la gauche...
Le chêne aussi était un gland, avant d'être un chêne
1
nicocorico Messages postés 846 Statut Membre 138
 
Je connais très mal le C, alors je te le fais en pascal, en espérant que tu comprendras mieux comme ça :
Function Inverse(Val : DWord): DWord; 
  begin 
    Result:= (Result * 10) + Val Mod 10; 
    Val:= Val div 10; 
  end; 

Exemple :
- 164 modulo 10 donne 4;
- On multiplie le résultat par 10, ça donne rien pour l'instant
- on met ce 4 dans le résultat;
- On divise 164 par 10, il reste 16;

- 16 modulo 10 donne 6;
- On multiplie le résultat par 10, ça donne 40;
- On ajoute 6 au résultat, ça donne 46;
- On divise 164 par 10, il reste 1;
Etc...
Au cas où : le modulo c'est le reste de la division, en C ça s'écrit '%'
-
0
spoonatte Messages postés 85 Statut Membre
 
Merci beaucoup
0