Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: struct, union sau class pentru numere > long  (Citit de 1140 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
stanescumalin
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« : Decembrie 29, 2010, 18:51:47 »

ma ajuta cineva cu struct-uri pentru numere > long
am incercat o implementare in permutari 3 dar dupa ce am facut cateva inmultiri numerele din struct deveneau negative.

am initializat struct-ul, am facut un carry si am folosit % pentru a pune numai 4 zecimale intr-un int.
mentioneza ca inmultirile si adunarile le-am efectuat pe un long. Inmultirile maxime posibile erau 9999*1000.

Codul sursa:
Cod:
struct toolong{
int tx[1000];
};

Cod:
toolong facto(int x){
toolong y;
int i;
if(x == 0){
y.tx[0] = 1;
for(i = 1; i<1000; i++){
y.tx[i] = 0;
}
}
else {
long carry, rx;
y = facto(x-1);
for(i=0; i<1000; i++){
rx = y.tx[i]*x + carry;
y.tx[i] = rx%10000;
carry = rx/10000;
}
}
return y;

}
si in functia principala tot cu carry si rx (si tot long).
La iesire obtin ceva gen 0310014344123-858993460-858993460-858993460-858993460-858993460-858993460...
-858993460 ma duce cu gandul ca nu este initializat
 Brick wall
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #1 : Decembrie 29, 2010, 19:32:00 »

Exista un articol foarte bun scris de Mircea Pasoi despre asta: link. Uita-te la sectiunea "numere mari".
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #2 : Decembrie 29, 2010, 20:21:19 »

Am si eu in STL scrisa o sursa cu numere mari, poate te ajuta. http://infoarena.ro/utilizator/SpiderMan ( Mirrors, al 4-lea rand ) .
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines