题目如下
说明:A^B的含义是“A的B次方”
2 3 12 6 6789 10000 0 0
8 984 1
代码如下(可优化)
#include <stdio.h>
#include <math.h>
int main()
{
int n,m;
int c=0,i=0;
while(scanf("%d%d",&n,&m)!=EOF)
{
if((n==0)&&(m==0))
break;
c=pow(n,m);
if((c<1000)&&(c>=1))
{
printf("%d",c);
}
else
{
c=n;
for(i=1;i<m;i++)
{
c=c*n%1000;
}
printf("%d\n",c);
}
}
return 0;
}
本题主要是让我们使用方法来求一个未知数的末尾的后3位,此方法可以推广到后4位后5位 思路如下1 先定义好变量 使变量c=n
2 进入for循环,跳出条件位i<m即乘幂的次数已经达到,循环内执行语句的含义为 先平方 后%1000取余数
3满足条件输出
注意 1 除1000取余数是因为要求末尾3位小数 倘若是4位则除10000
2 此方法可使用对于未知数位 求末尾数字
3 此方法对于小于1000的数可以使用即使只用esle的语句 因为小于1000的数%1000等于他本身