object NearestPowerOf2 {
/**
* Rounds a positive integer to the nearest power of 2.
* return the nearest power of 2
*/
def roundToNearestPowerOf2(n: Int): Int = {
if (n <= 0) return 0
// Compute the previous power of 2 using bit length
val prevPower = 1 << (31 - Integer.numberOfLeadingZeros(n))
val nextPower = prevPower << 1
if (n - prevPower < nextPower - n) prevPower else nextPower
}
def main(args: Array[String]): Unit = {
val num = 37
println(s"Nearest power of 2: ${roundToNearestPowerOf2(num)}")
}
}
/*
run:
Nearest power of 2: 32
*/