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) ?
Răspunsuri la întrebare
Răspuns de
1
Salut.Ti-am facut o rezolvare asemanatoare cu a ta.Succes in continuare!
Anexe:
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă