Contents
  1. 1. 题目大意:
  2. 2. 分析:

题目大意:

输入a,n,求a的n次方的后三位,如果有前导零也要把零输出,a,n都等于0时退出;

分析:

  • %1000
  • 输出%03d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

#include<stdio.h>
int main()
{

int a,n,ans=1;
while(scanf("%d%d",&a,&n)!=EOF&&(a||n)) //输入的a,n不能大于int的上限
{
a=a%1000; //以防第一次a*a数据溢出
while(n)
{
if(n & 1)
{
ans=(ans*a)%1000; //ans和a已经MOD一次了,所以不需要再MOD了
}
a=(a*a)%1000;
n >>= 1; //n向右移1,相当于除2
}
printf("%03d\n",ans); //如果是24,则输出024
ans=1;
}
return 0;
}
Contents
  1. 1. 题目大意:
  2. 2. 分析: