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--;

}