能不能解释一下power函数的运行过程

img


真的难以理解power函数的操作流程

你这个power的代码是错误的,正确的逻辑如下:

int power(int n,int t)
{
    int s = 1;  //类型最好改成 long long,避免数据超出整型范围
    for(int k = 1;k<=t;k++)
        s*=n;
    return s;
}
说明:
代码是求nt次幂
for循环从1t,执行t次,每次执行,都让s乘以t;
具体如下:
开始时,s = 1;
当k = 1时,s = s*n = 1*n; //n1次方
当k = 2时,s = s*n = (1*n)*n; //也就是n的平方
当k = 2时,s = s*n = ((1*n)*n)*n; //也就是n的三次方
。。。
以此类推,最后返回s 的值,这里,避免超出范围,最好把s的类型改成long long .

这个power函数是有错误的。首先循环里写到 i<=k,但这个函数里根本没有k。其次参数是t,然后内部又定义一个临时变量t,为何?
估计你是写错了,参数k误写成t了。power函数应该是求 n的k次方:

int power(int n,int k)
{
    int t=1;
    for(int i=1;i<=k;i++)
          t*=n;
    return t;
}

pow函数的运行就是计算n,的n次方。
比如t=1,n=2;
循环的作用相当于t=2*2;