#C6C. 整数幂查询

整数幂查询

题意:

对于整数 aa 和非负整数 kk,计算 aka^k。

当 k=0k=0 时,规定 ak=1a^k=1。数据保证不会出现 a=0a=0 且 k=0k=0 的情况。

本题采用函数接口提交方式(Template)。请选择 C 语言,只提交下面函数的完整定义:

long long power(int a, int k);

其中,参数 a 表示底数,参数 k 表示指数。函数应返回 aka^k 的值。

请使用整数乘法完成计算,不要调用 pow 函数。计算结果可能超过 int 的表示范围,应使用 long long 保存。

系统会将你提交的代码与下面的外部代码一起编译和运行:

#include <stdio.h>

long long power(int a, int k);

int main(void) {
    int T;
    scanf("%d", &T);

    while (T--) {
        int a, k;
        scanf("%d%d", &a, &k);
        printf("%lld\n", power(a, k));
    }

    return 0;
}

因此,你只需要实现 power 函数,不需要读入数据或输出结果,也不要提交 main 函数。

输入格式:

以下输入由系统提供的外部代码读入。

第一行一个整数 TT(1≤T≤1041 \le T \le 10^4),表示查询次数。

接下来 TT 行,每行两个整数 aa、kk(−10≤a≤10-10 \le a \le 10,0≤k≤180 \le k \le 18),分别表示底数和指数。

保证 aa 与 kk 不会同时为 00。

输出格式:

以下输出由系统提供的外部代码完成。

输出 TT 行,第 ii 行表示第 ii 组查询调用 power(a, k) 得到的返回值。

样例:

样例输入:

4
2 5
-3 3
7 0
0 4

样例输出:

32
-27
1
0