问题描述
lcy给feng5166,lwg,JGShining和Ignatius一个难题:给a和b,如何知道a ^ b。每个人都反对这个BT问题,所以lcy使问题比开始更容易。
这个难题描述了:给出了a和b,如何知道a ^ b是最后一位数字。但是大家都懒得解决这个问题,所以他们会向你汇报谁是明智的
这个难题描述了:给出了a和b,如何知道a ^ b是最后一位数字。但是大家都懒得解决这个问题,所以他们会向你汇报谁是明智的
输入
有很多测试用例。每个测试用例由两个数字a和b组成(0 <a,b <= 2 ^ 30)
输出
对于每个测试用例,您应输出a ^ b的最后一位数字。
示例输入
7 66
8 800
示例输出
9
6
虽然这道题的题目叫“一个难题”,但其实它与【1061】基本是一样的,不过就是把n^n换成a^b,输入 输出的格式调一下就OK了,大家也可以练习一下【1061】,大同小异。
【1061】链接:点击打开链接
下面来看代码吧~
#include <stdio.h>
int main() {
int s[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}}; //0~9对应的情况
int ans,temp;
long long a,b;
while (scanf("%lld %lld",&a,&b)!=EOF) {
temp=a%10;
if(temp==0||temp==1||temp==5||temp==6)
ans=temp;
else if(temp==4||temp==9)
ans=s[temp][b%2];
else
ans=s[temp][b%4];
printf("%d\n",ans);
}
return 0;
}