Informatică, întrebare adresată de Andrei13337, 8 ani în urmă

Si explicatia!
Va multumesc !

Anexe:

Răspunsuri la întrebare

Răspuns de DamianCZ
1

Răspuns:

Răspunsul corect este b).

Explicație:

Sfat pe viitor, încearcă să iei un număr și să-l încerci pe toate cazurile, te va ajuta să afli răspunsul corect și să înțelegi algoritmul.

Hai să luăm fiecare instrucțiune de la cazul b).

s <- s + (n % 10) * (n % 2)

s: variabila care stochează suma cifrelor impare

n % 10: te ajută să afli ultima cifră a unui număr (n % 10 reprezintă restul împărțirii lui n la 10)

n % 2: te ajută să determini dacă n este par sau nu (exemplu 12%2 este egal cu 0, dar 13%2 este egal cu 1)

n = n / 10: taie ultima cifră a numărului (dacă era n = n / 100, tăia ultimele două cifre ale numărului și tot așa)

Ca să înțelegi acest algoritm, încearcă să iei n%2 ca pe un test unde primesti 1 daca n este impar și 0 n daca este par.

Luăm și un exemplu, n = 132. Suma cifrelor impare ale lui 132 este 1+3.

Știm că s este egal cu 0 de la începutul algoritmului, așa că începem prima rulare a structurii repetitive cât-timp.

1)

s <- 0 + (132 % 10) * (132 % 2)

s <- 0 + 2 * 0

s <- 0

n <- 132 / 10

n <- 13

În prima rulare a structurii repetitive cât-timp, am verificat dacă 132 se împarte exact la doi (sau dacă este par), și se împarte, restul împărțirii numărului 132 la 2 este 0, nu există. Prin urmare, 132%10 se va înmulți cu 0, iar variabila s nu va primi nimic.

2) Pentru n <- 13

s <- 0 + (13 % 10) * (13 % 2)

s <- 0 + 3 * 1

s <- 3

n <- 13/10

n <- 1

În a doua rulare a structurii repetitive cât-timp observăm că s-a adăugat cifra 3 la sumă, fiind impară, deoarece restul împărțirii lui 13 la 2 rezultă 1 (13 % 2 = 1)

Practic, testul despre care îți spuneam mai sus n%10 este înmulțit cu 1 daca ultima cifră este impară și cu 0 dacă este pară)

3) Pentru n <- 1

s <- 3 + (1%10) * (1%2)

s <- 3 + 1 * 1

s <- 4

Așadar, s <- 4, reprezentând suma cifrelor impare ale lui 132.

Sper că ai înțeles, spune-mi dacă ai nelămuriri.


Andrei13337: Multumesc!
Alte întrebări interesante