109051 afișări Mititelu Ana Mirela (AnaMititelu) 15.10.2019 www.pbinfo.ro

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ă pe 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.


109051 afișări Mititelu Ana Mirela (AnaMititelu) 15.10.2019 www.pbinfo.ro