計算機得到 4*4 答案最快的方法是預先在代碼中直接寫常數 16(不過一般編譯器會也幫你這麼幹)。
但若是 n*4 最快的方法,位移!除非 n = 0(這時候直接返回 0 纔是最快的)。
不過現代 CPU 計算乘法效率已經跟加法似的了,編譯器優化的水平也不是懂一點技巧就能藐視的了,所以,實際情況,直接寫成 4*4,放心地交給編譯器優化(計算機最懂計算機!)纔是最快的(無論從哪個角度哦)。
long long powll(long long a, long long b)
{
long long ret = 1;
while (b) {
if (b & 1) ret *= a;
a *= a;
b >>= 1;
}
return ret;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。