思路:
所有数值尾数不断幂次相乘,都会每四轮一循环。通过这个规律可以很简单的求解高次幂。
2¹=2 2²=4 2³=8 2⁴=6 2⁵=2
3¹=3 3²=9 3³=7 3⁴=1 3⁵=3
4¹=4 4²=6 4³=4 4⁴=6 4⁵=4
5¹=5 5²=5 5³=5 5⁴=5 5⁵=5
6¹=6 6²=6 6³=6 6⁴=6 6⁵=6
7¹=7 7²=9 7³=3 7⁴=1 7⁵=7
8¹=8 8²=4 8³=2 8⁴=6 8⁵=8
9¹=9 9²=1 9³=9 9⁴=1 9⁵=9
————————————————
原文链接
代码:
#include <cstring>
#include <cstdio>
#include <iostream>
#include <map>
using namespace std;
int main(){
long long n;
while(scanf("%d",&n)!=EOF){
if(n==0){
printf("1\n");
}
else if(n%4==1){
printf("%lld\n",n%10);
}
else if(n%4==2){
printf("%lld\n",n*n%10);
}
else if(n%4==3){
printf("%lld\n",n*n*n%10);
}
else{
printf("%lld\n",n*n*n*n%10);
}
}
return 0;
}