你这个power的代码是错误的,正确的逻辑如下:
int power(int n,int t)
{
int s = 1; //类型最好改成 long long,避免数据超出整型范围
for(int k = 1;k<=t;k++)
s*=n;
return s;
}
说明:
代码是求n的t次幂
for循环从1到t,执行t次,每次执行,都让s乘以t;
具体如下:
开始时,s = 1;
当k = 1时,s = s*n = 1*n; //n的1次方
当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;