Diferente pentru lucrul-cu-nr-mari intre reviziile #1 si #2

Nu exista diferente intre titluri.

Diferente intre continut:

De multe ori, in probleme, apar situatii cand este nevoie sa memoram numere intregi foarte mari (de ordinul sutelor de cifre), iar uneori trebuie sa efectuam si operatii aritmetice cu aceste numere. Iata un asemenea exemplu:
h1. Lucrul cu numere mari
 
De multe ori, in probleme, apar situatii cand este nevoie sa memoram numere intregi foarte mari (de ordinul sutelor de cifre), iar uneori trebuie sa efectuam si operatii aritmetice cu aceste numere.
 
Numerele reprezentate pe vectori le vom numi pur si simplu "vectori", iar numerele reprezentate printr-un tip ordinal de date le vom numi, printr-o analogie usor fortata cu matematica, "scalari". Sa vedem acum cum se efectueaza operatiile elementare pe aceste numere.
 
h2. Initializarea
 
Un vector poate fi initializat in trei feluri: cu $0$, cu un scalar sau cu un alt vector.
 
La initializarea cu $0$, singurul lucru pe care il avem de facut este sa setam numarul de cifre pe $0$. De aceea, este practic inutil sa implementam aceasta functie ca atare; putem folosi in loc singura instructiune pe care ea o contine.
 
== code(c)|
void Atrib0(Huge H);
{ Hi0s=0; }
==
 
La initializarea cu un scalar nenul, trebuie sa asezam fiecare cifra pe pozitia corespunzatoare, afland in paralel si numarul de cifre. Se incepe cu cifra unitatilor, si la fiecare pas se pune in vector cifra cea mai putin semnificativa, dupa care numarul de reprezentat se imparte la $10$ (neglijandu-se restul), iar numarul de cifre se incrementeaza.
 
== code(c)|
void AtribValue(Huge H, unsigned long X)
{ Hi0s=0;
  while (X)
    { Hi++Hi0ss=X%10;
      X/=10;
    }
}
==
 
Iata, de exemplu, cum se pune pe vector numarul $195$:
 
 
 
 
 

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.