Elaborați o metodă ce primește în calitate de parametru un șir de caractere
și reîntoarce suma cifrelor din acest sir. C#
Răspunsuri la întrebare
Salut. Ți-am lăsat mai jos rezolvarea problemei. Succes!
Răspuns:
static int Suma(char[] sir)
{
int s = 0;
for (int i = 0; i < sir.Length; i++)
{
if(sir[i] >= '0' && sir[i] <= '9')
{
int nr = sir[i] - '0';
s += nr;
}
}
return s;
}
Explicație:
Mai întâi am inițializat variabila „s” cu zero pentru a memora suma cifrelor din șir. Apoi am parcurs șirul de caractere, dacă caracterul aflat la poziția „i” este cuprins între valorile specifice din tabelul ASCII al caracterului „0” (48), respectiv caracterul „9” (57). Am obținut numărul convertit în întreg prin diferența caracterului din șir cu „0” (48). Apoi am adunat la sumă numărul obținut. La sfârșit am returnat rezultatul.
Exemplu:
Dacă am găsit caracterul „1” (49) în șir, valoarea diferenței va fii 49 - 48, adică 1, ceea ce este corect.