高次方尾数
Description求x的y次方的最后k位数。
Input
第一行包含一个整数n(1≤n≤100),表示测试用例的个数。每个测试用例的输入有一行,整数x,y,k。其中,0<x≤1000,0≤y≤1000; 0<k≤4;
Output
对每个测试用例输出一行。输出x的y次方的最后k位数(忽略前导0)。
Sample Input
2
2 10 3
10 1000 4
Sample Output
24
0
程序代码:#include<stdio.h>
int cal(int x, int y, int k)
{
static e[] = {1, 10, 100, 1000, 10000};
int r;
if(y == 0) return 1;
r = cal(x, y >> 1, k);
r = r * r % e[k];
if(y & 1) r = r * x % e[k];
return r;
}
int main()
{
int n, x, y, k;
for(scanf("%d", &n); n--;)
{
scanf("%d%d%d", &x, &y, &k);
printf("%d\n", cal(x, y, k));
}
return 0;
}
