Aide sur un algorithme

Résolu/Fermé
spoonatte Messages postés 64 Date d'inscription mardi 22 novembre 2011 Statut Membre Dernière intervention 31 décembre 2013 - 30 déc. 2011 à 20:56
spoonatte Messages postés 64 Date d'inscription mardi 22 novembre 2011 Statut Membre Dernière intervention 31 décembre 2013 - 30 déc. 2011 à 21:46
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 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
Modifié par nicocorico le 30/12/2011 à 21:09
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 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
Modifié par nicocorico le 30/12/2011 à 21:41
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 64 Date d'inscription mardi 22 novembre 2011 Statut Membre Dernière intervention 31 décembre 2013
30 déc. 2011 à 21:46
Merci beaucoup
0