Enunțul problemei control, de clasa a 6-a, dată în 2010 la ONI, se găsește pe .campion.

Rezumat control

Se dau două numere naturale nenule, a și b, și o cifră c. Se cere să se determine numărul de numere cuprinse între a și b care au cifra de control egală cu c. Cifra de control a unui număr natural se obţine prin adunarea cifrelor numărului. Dacă rezultatul obţinut este o cifră, aceea este cifra de control a numărului dat. În caz contrar, se calculează suma cifrelor rezultatului obţinut, aplicând în mod repetat acest procedeu până când se obţine un rezultat de o singură cifră.

Soluție control

Se observă că dacă numărul n are cifra de control c, atunci numerele de forma n + 9 * k, cu k întreg, au și ele cifra de control c. Deci:

Vom căuta pe rând primul și ultimul număr din intervalul dat (x și y) care au cifra de control c, iar soluția va fi, evident, y / 9 - x / 9 + 1. Pentru a determina cifra de control a unui număr natural nenul putem scrie o funcție recursivă, însă o soluție mai eficientă e să îi calculăm suma cifrelor. Dacă restul împărțirii acesteia la 9 e nenul, acela va fi rezultatul, altfel cifra de control e 9.

Sursă C++ control

Dacă ai vreo nedumerire cu privire la problema control, lasă un comentariu și te voi ajuta ?

Îți place conținutul acestui site?

Dacă vrei să mă susții în întreținerea server-ului și în a scrie mai multe articole de calitate pe acest blog, mă poți ajuta printr-o mică donație. Află aici cum o poți face!