最原始的方法超时,Wa了几次,原因是 0^0 = 0 ?
#include <iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
int a = n % 10;
int b = a;
int mod = 0;
for(int i = 1; i < n; i++)
{
b = (b * a) % 10;
if(b == a)
{
mod = i;
break;
}
}
if(1 == mod)
{
cout << a << endl;
continue;
}
if(mod != 0)
n = n % mod + mod;
b = a;
for(int i = 1; i < n; i++)
b = (b * a) % 10;
cout << b << endl;
}
return 0;
}
打表方法肯定是最快,附上打表代码:
#include<stdio.h>
int main()
{
int n;
int a[10][4] = {
{0},{1},{6,2,4,8},{1,3,9,7},{6,4},{5},{6},{1,7,9,3},{6,8,4,2},{1,9}},d,num;
scanf("%d",&num);
while