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

Se consideră subalgoritmul prelucreaza(v, k), unde v este un șir cu k numere naturale (1 ≤ k ≤ 1 000).
Subalgoritm prelucreaza(v, k)
i ← 1, n ← 0
CâtTimp i ≤ k și vi ≠ 0 execută
y ← vi, c ← 0
CâtTimp y > 0 execută
Dacă y MOD 10 > c atunci
c  y MOD 10
SfDacă
y ← y DIV 10
SfCâtTimp
n ← n * 10 + c
i ← i + 1
SfCâtTimp
returnează n
SfSubalgoritm
Precizați pentru care valori ale lui v și k subalgoritmul returnează valoarea 928.
A. v = (194, 121, 782, 0) și k = 4
2
B. v = (928) și k = 1
C. v = (9, 2, 8, 0) și k = 4
D. v = (8, 2, 9) și k = 3

Se poate sa-mi explicati modul de rezolvare? multumesc!

Răspunsuri la întrebare

Răspuns de Mghetes
1

Răspuns:

C. v = (9, 2, 8, 0) și k = 4

Explicație:

Acest subalgoritm parcurge sirul v (pana cand mai are elemente de parcurs sau pana cand intalneste un element cu valoare 0), iar pentru fiecare numar din sir, se calculeaza cea mai mare cifra. Apoi folosind cifrele gasite ca fiind cele mai mari, se formeaza un numar.

Mai explicit e pentru punctul  v = (194, 121, 782, 0) și k = 4

194 -> 9

121 -> 2

782 -> 8

0 ->  algoritmul se opreste deoarece v[i] nu este ≠ 0

numarul obtinut este: 928

daca am fi avut:

c=(23, 0, 89), k = 3

23 -> 3

0 -> algoritmul se opreste deoarece v[i] nu este ≠ 0

numarul ontinut: 3

Alte întrebări interesante