描述
求a的b次方后四位。
格式
输入格式
输入的第一行是T(不超过1000)。T表示测试部分的个数,每一部分都要求单独计算并按照要求输出结果。
接下来是每个测试部分。第一行给出a b,0 < a,b <= 100。
输出格式
对于每个测试部分,请输出每个问题的正确答案的最后四位,如果不足四位请前面补0。
样例
样例输入
2
2 1
3 10
样例输出
0002
9049
int main()
{
int n=0;
int a,b,sum=1;
scanf("%d",&n);
for(int i=0;i<n;++i)
{
sum=1;
scanf("%d %d",&a,&b);
while(b-- && (sum*=a));
printf("%04d",sum%10000);
}
return 0;
}
#include<stdio.h>
void main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int x,y,k=1;
scanf("%d%d",&x,&y);
for(int j=1;j<=y;j++)
{
k *= y;
k = k%10000;
}
printf("%04d\n",k);
}
}
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,T;
int *a,*b;
long long s=1;
//读入数据T
scanf("%d",&T);
a = (int *)malloc(sizeof(int)*T);
b = (int *)malloc(sizeof(int)*T);
//读入数据
for(i=0;i<T;i++)
scanf("%d%d",&a[i],&b[i]);
//计算
for (i=0;i<T;i++)
{
s = 1;
for(j=1;j<=b[i];j++)
s *= a[i];
printf("%04d\n",s%10000);
}
free(a); a= 0;
free(b); b=0;
return 0;
}