Sad things happen when you lose your mind:
using i64 = long long;
// Precondition: (base, exponent) won't cause overflow
i64
my_pow(const i64 base, const i64 exponent)
{
i64 accumulator = 0;
for (i64 exponent2 = exponent, current_power = base; exponent2 > 0;
exponent2 >>= 1, current_pow *= current_pow)
{
if (exponent2 & 1)
{
accumulator += current_power;
}
}
return accumulator;
}
No comments:
Post a Comment