问题描述
我想计算一个数的 p
次方,结果得到 Segmentation fault
。
此代码应该可以工作:
#include <stdio.h>
int my_power(int nb,int p)
{
if (nb != 0){
return nb*my_power(nb,p-1);
}
return 1;
}
int main(int argc,char argv[]){
printf("%d\n",my_power(5,3));
return 0;
}
解决方法
在您的代码中,您的递归永远不会结束。 将基本情况更改为 pb 就可以了。
,我通过检查 D:/tmp/logstash/1output.txt
而不是 p
找到了解决方案,并且它奏效了。
我已经为负值和 0^0 的情况添加了条件。
nb
谢谢你的提示。