Cifra de control a unui număr se obține efectuând suma cifrelor sale, apoi suma cifrelor acestei sume, până când suma obținută este un număr format dintr-o singură cifră. Această ultimă cifră poartă numele de cifră de control.
Exemplu: Cifra de control (cc)
a numărului n=4568248
:
cc(4568258)=cc(38)=cc(11)=2
.
Secvență de implementare C++:
while (n>9)
{
s=0;
while (n>0)
{
s+=n%10;
n/=10;
}
n=s;
}
Algoritmul prezentat este intuitiv, ușor de înțeles și contribuie la dezvoltarea gândirii algoritmice.
Tot pentru calcularea cifrei de control se poate folosi și următoarea metodă: se trunchiază numărul prin eliminarea ultimei cifre apoi se adună cu aceasta până se obține un număr format dintr-o singură cifră.
Exemplu:
n=4568258
n=456825+8=456833
n=45683+3=45686
n=4568+6=4574
n=457+4=461
n=46+1=47
n=4+7=11
n=1+1=2
Secvența de implementare C++:
while(n>9)
{
n=n/10+n%10;
}
În ambele cazuri timpul de execuție depinde de numărul de cifre ale numărului și de valorile acestora.
Pornind de la criteriul de divizibilitate cu 9, un număr se divide cu 9 dacă suma cifrelor sale este multiplu de 9 și cum cifra cea mai mare în baza 10 este 9, putem afla cifra de control calculând restul împărțirii numărului la 9. Dacă restul este 0 atunci cifra de control este 9, altfel este acel rest.
Secvența de implementare C++:
r=n%9;
if (r==0)
cc = 9;
else
cc = r;
În acest caz numărul de operații elementare nu mai depinde de valoarea lui n.