Comments 2
Гениально!
На Си это получится так
uint32_t int_pow_fast(const uint32_t base,
const uint32_t exponenta) {
uint32_t result = 0;
uint32_t n = exponenta;
if(0==n) {
result =1;
} else {
result = 1;
uint32_t current_product = base;
/*run through all the exponenta bits*/
while (0 < n) {
if (1&n) {
/* found a factor of 2 different from 1 in
our exponenta decomposition*/
result *= current_product;
}
current_product *= current_product;
n = n >> 1;
}
}
return result;
}
Sign up to leave a comment.
Решение задачи с Leetcode про возведение числа в степень