题目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1097
题意:
给出a和b,问ab 的最后一位是多少,一道简单的快速幂题目。需要注意的使a*=b%10和a = a*b%10的区别,我就是这里wa的。前面是先对b%10然后在进行a = a * b,后面就是a = a * b%10,不明白的可以打一下,试一下12 13输出什么。
AC代码:
#include <iostream>
using namespace std;
typedef long long ll;
int main()
{
ll a, b;
while (~scanf("%lld %lld", &a, &b))
{
ll sum = 1;
while (b)
{
if (b&1)
{
sum*=a;
sum%=10;
}
b>>=1;
a*=a;
a%=10;
}
printf("%lld\n", sum%10);
}
return 0;
}