Informatică, întrebare adresată de Dropbox, 9 ani în urmă

Salut, imi poate spune cineva de ce iau 0 puncte la problema asta si sa-mi dea alt cod daca al meu nu e bun?
Să se scrie o funcţie care primeşte ca argumente două numere naturale a şi b şi returnează numărul de elemente din intervalul [a,b] care au cifra de control egală cu a.
Cifra de control a unui număr se obţine efectuând suma cifrelor sale, apoi suma cifrelor acestei sume etc. până se obţine o sumă formată dintr-o singură cifră. De exemplu, cifra de control a numărului 645 este 6. (6+4+5=15, 1+5=6)

Restricţii şi precizări
numele funcţiei va fi sum_cifra_control
funcţia va avea doi parametri, a şi b, în această ordine
1 ≤ a ≤ 9
a < b ≤ 107

Exemplu
sum_cifra_control(2, 100) = 11

Codul meu :

int sum_cifra_control(int a, long long b)
{

int i = a, s = 0, nr = 0;

while(i < b)
{
int u = i;
while(u >= 10)
{
nr = 0;
while(u > 0)
{
int c = u % 10;
nr += c;
u /= 10;
}
u = nr;
}
if(nr == a) s++;

i++;
}
return s;
}


nokia2700: Deoarece egalezi u cu nr, la if poti incerca sa scrii if (u == a) ?
Dropbox: Pai trebuie sa egalez mereu u cu nr.
Dropbox: Trebuie ca suma cifrelor sa fie doar de o cifra.
Dropbox: Trebuie sa fac suma cifrelor pana suma e formata dintr-o singura cifra.
Dropbox: Intelegi la ce ma refer?
nokia2700: Stiu, faci corect, dar aici pare a fi o problema cu suma ce o calculeaza
nokia2700: Miine o sa testez problema pe PC, poate astepta, da?
Dropbox: Da, nu ma grabesc.
Dropbox: Nu e tema sau ceva de genu' asta.
Dropbox: Take your time.

Răspunsuri la întrebare

Răspuns de StarBack
1
Salut.Ti-am facut o rezolvare asemanatoare cu a ta.Succes in continuare!
Anexe:

Marry111111111: cum ai făcut-o?
StarBack: La ce te referi?
Marry111111111: poza aia
Marry111111111: cum?
StarBack: E un program care captureaza si taie imaginea.
Marry111111111: ok ,mulțumesc
Alte întrebări interesante