题目描述
求a^b(a的b次方)的末位数。
输入
有多组测试数据,每组一行,为a,b两个整数。0<=a,b<=10000,a,b不同时为0。
输出
为每行一个数,为a^b的最后一位数字。
样例输入
2 10
7 66
8 800
9782 10000
样例输出
4
9
6
6
用pow显然不行,于是考虑连乘,因为求的是末尾的数字,而决定此数值的只有每个相乘数末尾数字,具体代码如下
#include<stdio.h>
int main()
{
int i,a,b,c;
while(scanf("%d %d",&a,&b)!=EOF)
{
c=a%10;
for(i=1; i<b; i++)
{
c=c*(a%10);//因为是连乘,所以每次要乘原来a的末尾数字
c%=10;//每次只需取结果的末尾数字
}
printf("%d\n",c);
}
return 0;
}
另附取末三位整数方法的链接:https://blog.csdn.net/littlenoob/article/details/61666004