51Nod 1004 N^N 的末位数字
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
输入
一个数N(1 <= N <= 10^9)
输出
输出N^N的末位数字
输入样例
13
输出样例
3
这是一道大水题 只不过 样例范围给的比较大 直接n%10 然后乘的话 回TLE 思路很简单 找规律 10个数字的高次幂 末尾数字是循环出现的 直接 打表 然后 对 n模除 查表
#include<iostream>
using namespace std;
int a2[] = {2,4,8,6};
int a3[] = {3,9,7,1};
int a4[] = {4,6};
int a7[] = {7,9,3,1};
int a8[] = {8,4,2,6};
int a9[] = {9,1};
int main()
{
int n;
scanf("%d",&n);
int temp = n%10;
int i = (n-1)%4;
int j = (n-1)%2;
switch(temp){
case 0:
printf("0\n");
break;
case 1:
printf("1\n");
break;
case 2:
printf("%d\n",a2[i]);
break;
case 3:
printf("%d\n",a3[i]);
break;
case 4:
printf("%d\n",a4[j]);
break;
case 5:
printf("5\n");
break;
case 6:
printf("6\n");
break;
case 7:
printf("%d\n",a7[i]);
break;
case 8:
printf("%d\n",a8[i]);
break;
case 9:
printf("%d\n",a9[j]);
break;
}
return 0;
}