public class Main {
public static Integer hitungNomorBit
(int angka,
int nomorBit
) { int[] biner = new int[32];
int i = 0;
if (angka == 0 && nomorBit == 0) return 3;
// Konversi manual desimal ke biner (tanpa fungsi built-in)
while (angka > 0) {
biner[i] = angka % 2;
angka = angka / 2;
i++;
}
if (nomorBit >= i) return null;
return (biner[nomorBit] == 1) ? 1 : 3;
}
public static void main
(String[] args
) { System.
out.
println("hitungNomorBit(13, 0) = " + hitungNomorBit
(13,
0)); //hasilnya 1 System.
out.
println("hitungNomorBit(13, 1) = " + hitungNomorBit
(13,
1)); // hasilnya 3 System.
out.
println("hitungNomorBit(13, 2) = " + hitungNomorBit
(13,
2)); // hasilnya 1 System.
out.
println("hitungNomorBit(13, 3) = " + hitungNomorBit
(13,
3)); // hasilnya 1 System.
out.
println("hitungNomorBit(13, 4) = " + hitungNomorBit
(13,
4)); // hasilnya null }
}
cHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyBJbnRlZ2VyIGhpdHVuZ05vbW9yQml0KGludCBhbmdrYSwgaW50IG5vbW9yQml0KSB7CiAgICAgICAgaW50W10gYmluZXIgPSBuZXcgaW50WzMyXTsKICAgICAgICBpbnQgaSA9IDA7CgogICAgICAgIGlmIChhbmdrYSA9PSAwICYmIG5vbW9yQml0ID09IDApIHJldHVybiAzOwoKICAgICAgICAvLyBLb252ZXJzaSBtYW51YWwgZGVzaW1hbCBrZSBiaW5lciAodGFucGEgZnVuZ3NpIGJ1aWx0LWluKQogICAgICAgIHdoaWxlIChhbmdrYSA+IDApIHsKICAgICAgICAgICAgYmluZXJbaV0gPSBhbmdrYSAlIDI7CiAgICAgICAgICAgIGFuZ2thID0gYW5na2EgLyAyOwogICAgICAgICAgICBpKys7CiAgICAgICAgfQoKICAgICAgICBpZiAobm9tb3JCaXQgPj0gaSkgcmV0dXJuIG51bGw7CgogICAgICAgIHJldHVybiAoYmluZXJbbm9tb3JCaXRdID09IDEpID8gMSA6IDM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaGl0dW5nTm9tb3JCaXQoMTMsIDApID0gIiArIGhpdHVuZ05vbW9yQml0KDEzLCAwKSk7IC8vaGFzaWxueWEgMQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaGl0dW5nTm9tb3JCaXQoMTMsIDEpID0gIiArIGhpdHVuZ05vbW9yQml0KDEzLCAxKSk7IC8vIGhhc2lsbnlhIDMKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImhpdHVuZ05vbW9yQml0KDEzLCAyKSA9ICIgKyBoaXR1bmdOb21vckJpdCgxMywgMikpOyAvLyBoYXNpbG55YSAxCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJoaXR1bmdOb21vckJpdCgxMywgMykgPSAiICsgaGl0dW5nTm9tb3JCaXQoMTMsIDMpKTsgLy8gaGFzaWxueWEgMQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaGl0dW5nTm9tb3JCaXQoMTMsIDQpID0gIiArIGhpdHVuZ05vbW9yQml0KDEzLCA0KSk7IC8vIGhhc2lsbnlhIG51bGwKICAgIH0KfQo=