Impartirea numerelor mari
Impartirea unui numar mare cu o cifra
La fel ca și la înmulțirea dintre un numar mare și o cifră, pentru a împărți un număr mare la o cifră putem aplica o metodă mai ușoară simulând operația de împărțire de la matematică, tinând cont că restul va fi si el o cifră deorece imărțitorul este o cifră.
Funcția
primul număr a: char a[]; //transmis prin referință, fiind o constantă pointer la primul caracter din șir
numărul de cifre din primul număr: int lga; //transmis prin valoare
valoarea împărțitorului cif: int cif; //transmis prin valoare
catul impartirii a:cif: char cat[]; //transmis prin referință, fiind o constantă pointer la primul caracter din șir
numărul de cifre al câtului lgcat: int &lgcat; //transmis prin referință, se modifică în funcție
restul obținut în urma operatiei a:cif: int &rest; //transmis prin referință, se modifică în funcție
//impartirea unui numar mare la cifra
void impartireCifra(char a[], int lga, int cif, char cat[], int &lgcat, int &rest)
{
int i;
//initializare rest cu 0 si lungimea catului cu 0
rest=0;
lgcat=lga;
//simulare impartire
for(i=lga-1;i>=0;--i)
{
rest=rest*10+a[i];
cat[i]=0;
while (cif<rest)
{rest=rest-cif;
cat[i]++;
}
}
//determin numarul de cifre ale catului
while(!cat[lgcat-1]&&lgcat>1)
lgcat--;
}