Vai al contenuto principale
← OlimpiApp Difficile

Informatica · Implementazione

Due cicli guidati dal bit più basso

Per un intero positivo $j$, low(j) è la più grande potenza di 2 che divide $j$ (per esempio low(12) = 4 e low(7) = 1). Qual è il valore di c al termine del programma seguente?

c = 0
for i = 1 to 1000:
    j = i
    while j <= 1000:
        c = c + 1
        j = j + low(j)
    j = i
    while j > 0:
        c = c + 1
        j = j - low(j)

La tua risposta

Vanno bene sia 3,14 sia 3.14.