问题 H: 不开心的小明③
时间限制: 1 Sec 内存限制: 128 MB提交: 55 解决: 15
[ 提交][ 状态][ 讨论版]
题目描述
这天小明又不开心了, 小明数学考零分, 麻麻竟然打小明屁股, 小明为了证明自己, 决定解决一道题目来证明自己, 题目意思如下:
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
输入
第一行输入一个整数t,代表有t组测试数据(t <= 50)
每组数据只有一个整数N(1 <= N <= 10^18)
数据很大,请使用long long代替int。
输出
输出N^N的末位数字。
样例输入
2 1 13
样例输出
1 3
#include<stdio.h> #include<string.h> int main() { int t,l,i,s,c,a; char st[25]; scanf("%d",&t); while(t--) { s=0; scanf("%s",st); l=strlen(st); c=st[l-1]-'0'; if(c==0) printf("0\n"); else { for(i=0;i<l;i++) { s=(s*10+(st[i]-'0')); s%=4; } if(s==1) printf("%d\n",c); else if(s==2) printf("%d\n",c*c%10); else if(s==3) printf("%d\n",c*c*c%10); else printf("%d\n",c*c*c*c%10); } } return 0; }