(递归)快速幂
題目
xyx^yxy當y很大,采用如下方式
{f(x,y2)×f(x,y2),(y%2=0,y>0)1,y=0f(x,y2)×f(x,y2)×x,(y%2=1,y>0)\left\{\begin{matrix} & f(x,\frac{y}{2})\times f(x,\frac{y}{2}),(y\%2=0,y>0)\\ & 1,y=0\\ & f(x,\frac{y}{2})\times f(x,\frac{y}{2})\times x ,(y\%2=1,y>0) \end{matrix}\right. ?????f(x,2y?)×f(x,2y?),(y%2=0,y>0)1,y=0f(x,2y?)×f(x,2y?)×x,(y%2=1,y>0)?
第一行輸入t(t≤100)(t\leq 100)(t≤100)。
t行,每行有三個整數x(1≤x≤1091\leq x \leq 10^91≤x≤109),y(1≤y≤10181\leq y \leq 10^{18}1≤y≤1018),p(1≤p≤1091\leq p \leq 10^91≤p≤109)。
輸出xy%px^y\%pxy%p的值。
樣例輸入
1
2 10 10000
樣例輸出:
1024
分析與解答:
直接用遞歸,log(n)的時間復雜度。
這里注意%p因為p有可能是1,所以每個都要加%p,還有,盡量每個數都加上%p,如果k*k%p*x%p;少了中間那個%p,就出錯了
總結
- 上一篇: wsld2java axis_Weblo
- 下一篇: java service 事物_Serv