快速幂百度百科:快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。
代码实现如下:
import java.util.Scanner; public class Main
{
public static void main(String []args)
{
Scanner cin = new Scanner(System.in);
int T = cin.nextInt();
for(int i = 0; i < T; i++)
{
int N = cin.nextInt();
System.out.println(Search(N));
}
}
static int Search(int N)//快速幂的模板一般都与下面的代码相同
{
int ans = 1;
int temp = N;
while(N != 0)
{
if((N & 1) != 0)
{
ans = (ans%10)*(temp%10);
}
temp = (temp%10) * (temp%10);
N = N>>1;
}
ans = ans%10;
return ans;
}
}