#12. 快速幂
快速幂
题目描述
计算 可以采用如下代码完成
long long sum = 1;
for (int i = 1; i <= y; i++)
{
sum = sum * x;
}
当 是一个较大的整数,使用 for 循环计算会超时 TLE。
快速幂是一项快速计算 的算法。设 是一个计算 的函数,它的递归公式如下:
$$f(x,y)=\begin{cases} f(x,\frac{y}{2})\times f(x,\frac{y}{2}) \ \ y>0 \ 且\ y\ 是偶数\\ 1\ y=0\\ f(x,\frac{y}{2})\times f(x,\frac{y}{2})\times x \ \ y>0 \ 且\ y\ 是奇数\\ \end{cases} $$当然除此以外快速幂还有另一种写法。请你根据上面的递归函数写出快速幂的代码。
由于答案可能很大,请你输出最终结果对 取余的结果。
输入格式
输入两个正整数 ,
输出格式
输出 对 取余后的结果。
2 3
8
相关
在以下作业中: