fun myPow(base: Double, exponent: Int): Double {
var result = 1.0
var baseVar = base
var expVar = exponent
while (expVar > 0) {
if ((expVar and 1) == 1) {
result *= baseVar
}
expVar = expVar shr 1
baseVar *= baseVar
}
return result
}
fun main() {
println(myPow(2.0, 3)) // 8
println(myPow(3.0, 3)) // 27
println(myPow(3.0, 2)) // 9
println(myPow(2.0, 2)) // 4
println(myPow(5.0, 2)) // 25
println(myPow(-2.0, 4)) // 16
}
/*
run:
8.0
27.0
9.0
4.0
25.0
16.0
*/