fonction change un integer 123 en 321... help - C++ - Programmation
Marsh Posté le 18-01-2003 à 06:07:55
COULIX a écrit : ou sino comment iverser nombre sans utilser string ?? |
atoi() et itoa() ça devrait t'aider.
Pour les grand nombres, trouve un package de classes toutes faites, c'est une oeuvre titanesque (un de mes profs a fait sa thèse, 3 ans de sa vie, sur la division).
Marsh Posté le 19-01-2003 à 10:54:59
je préferais une solution à base de stringstream
surtout que itoa est loin d'etre standard, et que atoi c'est du C
Marsh Posté le 20-01-2003 à 02:21:28
nraynaud a écrit : |
je trouve ca un peu stupide notre dernier assignement (premier semestre de c++)
faire un programme qui calcul le palindrome de tout entier et donn ele coef.
exemple.
tu rentre 17 ---> il fait 17+71 = 88 hop palindrome degre 1.
le problem c qu apres une recheche sur le sujet, des nombres sont carrement trop grand, genre 196 a 14 millions de chiffrre toujours pas de plaindroe.
donc ou est l interet de nous faire un programme qui est limiter, vu nos conaissance.
bon je vais quand meme essaer de fair quelqeu chose d ebien avec le palindrome + coef en fsteam dans un fichier en output.
et peut rtete que j eparviendrai a trouver le fameux palindrone de 196 .
Marsh Posté le 20-01-2003 à 02:22:25
++Taz a écrit : je préferais une solution à base de stringstream |
je vais voir sa, apres une recherche de "stringtream " sur google
Marsh Posté le 20-01-2003 à 02:35:58
sa marche pas
Code :
|
Marsh Posté le 20-01-2003 à 04:46:14
COULIX a écrit : sa marche pas
|
heu je suis pas sur, mais déjà ta variable "inverse" a le même nom que ta fonction.
atoi() veut dire ascii to integer donc au minimum c'est itoa qu'il faut que tu utilises ici, mais comme ça renvoie une chaine C (un char *) et pas une string, il doit y avoir une connerie genre conversion implicite mais utilise au minimum une conversion explicite genre string(itoa(nombre)).
Mais il t'a été proposé un truc un peu plus C++ que itoa et atoi plus haut.
Et puis donne les messages d'erreur quand ça marche pas !
Marsh Posté le 20-01-2003 à 06:14:36
bon jai converti mes string en char [100], sa marche avec
Code :
|
le probleme des que mon entier depasse 12 chiffre le resultat est merdeux.....
Marsh Posté le 20-01-2003 à 08:05:41
puisque vous voulez pas utilisez les stringstream, gardez au moins les std::sting
pour atoi:
int i= atoi(str.c_str());
le prototype
const char * std::string::c_str() const;
Marsh Posté le 21-01-2003 à 06:22:02
COULIX a écrit : bon jai converti mes string en char [100], sa marche avec
|
Heu d'après ma calculette c'est à 10 chiffres que ça coupe.
Il te faut un package bigInteger, tu pourras pas manipulet des nombres aussi grands sinon, ou alors garde des chaines de caractères (et de type string, pas char *) de bout en bout. Je ne sais pas ce que c'est que ce coefficient qu tu calcules mais s'il ne nécessite pas de faire d'opération arithmétique impliquant tout le nombre, garde des caractères de bout en bout.
Marsh Posté le 21-01-2003 à 10:46:47
nraynaud a écrit : |
ca marche avec des strings =)
j ai p.\lus qu a y mettre une boucle et roulaize...
Code :
|
Marsh Posté le 18-01-2003 à 01:12:22
ou sino comment iverser nombre sans utilser string ??
ex : 2365 --> 5632
c pour un prog qui calcul les nombres palindrome, et leur coef.
un autre problem, je ne voie pas trop comment garder tou les chiffres d un tres tes gros entier lors de calculs ..
help please.
Message édité par COULIX le 20-01-2003 à 02:53:50