问题描述:
计算a^b结果的最后一位数。
解题思路:
假设a=2,则b=0时a^b=1;b=1时a^b=2;b=2时a^b=4;b=3时a^b=8;b=4时a^b=16
b=5时a^b=32;b=6时a^b=64;b=7时a^b=128;b=8时a^b=256;……
发现从一开始,b%4的余数对应的最后一位数总是2、4、8、6的循环。
代码展示:
#include<stdio.h>
#include<math.h>
void main()
{
int a,b;
int m,n,p;
while(scanf("%d%d",&a,&b)!=EOF)
{
a%=10;
b%=4;
if(b==0)
{
printf("%d\n",a*a*a*a%10);
}
else
{
int sum=1;
while(b--)
sum*=a;
printf("%d\n",sum%10);
}
}
}