194 Raspunsuri multiple
Se consideră algoritmul f(e), unde e este un număr natural nenul (1 ≤ e ≤ 10^6) și algoritmul g(arr, a, b), unde a și b sunt numere naturale nenule (1 ≤ a, b ≤ 10^3) și arr este un vector de n numere naturale nenule (1 ≤ arr[1], arr[2], ..., arr[n] ≤ 10^6). Operatorul & este operatorul AND pe biți (ex: 6&1 = 110&001 = 000 = 0, 2&7 = 010&111 = 010 = 2).
Algoritm 1
Algorithm f(e)
k ← 0
While e > 0 execute
k ← k + (e & 1)
e ← e DIV 2
EndWhile
Return k MOD 2 = 1
EndAlgorithmAlgoritm 2
Algorithm g(arr, a, b)
If a = b then
Return f(arr[a])
EndIf
c ← (a + b) DIV 2
Return g(arr, a, c) AND g(arr, c+1, b)
EndAlgorithmPentru ce valori ale numărului n și ale vectorului arr apelul g(arr, 1, n) returnează True?
7 / 30