描述
计算?ab?的个位数。
输入描述
一行两个空格隔开的正整数表示?a?和?b。
输出描述
输出?a^b?的个位数。
样例输入 1?
2 4
样例输出 1?
6
提示
1≤a,b≤10^5
题解
这个题容易出的问题就是大数溢出,因为a的范围是大于等于1,那么如果我们a给的是1000000111111111111,就已经超出int和long long了,你用什么都没办法,这样就只能先把个位拿出来,然后每次只乘个位,相当于就是个位那个数字,做b次循环,但是,我们要注意如果个位是9,我们的b是99999,还是可能会溢出,那么我们每次乘完之后还要对res进行取余,让res始终保持数量不大。
#include<bits/stdc++.h>
using namespace std;
int main(){
long long int a,b;
cin >> a >> b;
long long int res = 1;
int ge = a%10;
for(int i = 0;i < b;i ++){
res *= ge;
res %= 10;
}
cout << res%10;
}