3 réponses
Salut.
Il suffit de découper ton nombre (4321) en chiffre et de les écrire à l'envers.
l'algo : trouver la puissance de 10 la plus haute du nombre (ici 3)
tu divise ce nombre par cette puissance (donc ici par 1000) et tu conserve la partie entière (ici 4)(automatique lors de la division d'entier normalement).
Donc, premier nombre 4.
Tu reprends ton nombre d'orignie, tu lui enleve le denier nombre trouver (4)fois la puissance (1000) et tu divise le résultat par la puissance inférieur inférieur (100), tu récupère la partie entière etc...
tu obtiens ainsi 4,3 ,2, 1 comme entier.
Il ne te reste plus qu'à les écrire dans l'autre sens:
1*10^3+2*10^2+3*10^1+4
Voilà, j'espère avoir été clair.
Il suffit de découper ton nombre (4321) en chiffre et de les écrire à l'envers.
l'algo : trouver la puissance de 10 la plus haute du nombre (ici 3)
tu divise ce nombre par cette puissance (donc ici par 1000) et tu conserve la partie entière (ici 4)(automatique lors de la division d'entier normalement).
Donc, premier nombre 4.
Tu reprends ton nombre d'orignie, tu lui enleve le denier nombre trouver (4)fois la puissance (1000) et tu divise le résultat par la puissance inférieur inférieur (100), tu récupère la partie entière etc...
tu obtiens ainsi 4,3 ,2, 1 comme entier.
Il ne te reste plus qu'à les écrire dans l'autre sens:
1*10^3+2*10^2+3*10^1+4
Voilà, j'espère avoir été clair.
Bah tu peux directement utiliser une chaine de caractère et atoi :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/atoi.3.html
.. ou quelque chose dans ce goût-là...
Bonne chance
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/atoi.3.html
#include <string.h> #include <stdio.h> int miroir(unsigned int x){ char buffer1[100]; char buffer2[100]; unsigned int n,i; sprintf(buffer1,"%d",x); n = strlen(buffer1); // Recopier de droite à gauche for(i=0;i<n;++i) buffer2[n-1-i]=buffer1[i]; return atoi(buffer2); }
.. ou quelque chose dans ce goût-là...
Bonne chance