快速幂
<h2>使用方法</h2>
<ol>
<li>
<p>使用命名空间</p>
<pre><code class="language-cpp">using namespace algorithm</code></pre>
</li>
<li>然后直接使用函数即可</li>
</ol>
<p>[========]</p>
<h2>函数说明</h2>
<p>函数<code>Type pow(Type index, Type head)</code> 计算 $$index^{head}$$ 的值,返回值为Type类型</p>
<p>函数<code>Type pow(Type index, Type head, Type mod)</code> 计算 $$index^{head}\ \ \%\ \ mod$$ 的值,返回值为Type类型</p>
<p>[========]</p>
<h2>模板代码</h2>
<pre><code class="language-cpp">namespace algorithm{
template <class Type>
Type qpow(Type index, Type head, Type mod = (Type)-1){
Type sum = (Type)1;
while(head){
if(head & 1){
sum = sum * index;
if(mod != -1) sum %= mod;
}
head >>= 1;
index = index * index;
if(mod != -1) index %= mod;
}
return sum;
}
}</code></pre>
<p>[========]</p>