domingo, 26 de maio de 2024

Divisão binária

/* calcula o número de ciclos necessários */

var max = 5;

var min = 1;

var cmp;

var med;

var op = -1; /* opção */

while (cmp>1) {    

    med = min + Math.floor(cmp/2);

    op = parseInt(prompt("Maior do que " + (med-1) + "? 1 para sim e 0 para não"));

    if(op==1){ /* direita é sim */

        min = med;

    } else {

        max = med-1;

    }

    cmp = max - min +1;

}


if(op==1){

    alert(med);

} else{

    alert(med-1);

}

Sem comentários:

Enviar um comentário