高次方尾数
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; }