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:
struct toolong{
int tx[1000];
};
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