递归算一个数的幂(简单)C/C++ code#includestdio.hdouble power(double n,int p)int main(void){double
递归算一个数的幂(简单)
- C/C++ code
#include<stdio.h>double power(double n,int p);int main(void){ double x,xpow; int exp; printf("Enter:\n"); while(scanf("%lf%d",&x,&exp)==2) { xpow=power(x,exp); printf("%.3g to he power %d is %.5g",x,exp,xpow); } printf("bye!\n"); return 0;}double power(double n,int p){ double pow=1; int i; if(n==0) pow=0; if(p>0) { pow=n*power(n,p-1); } else if(p=0) pow=1; else if(p<0) pow=1/(n*power(n,p+1));//测试时输入一个整数和一个负数,比如输入5 -1;结果错误;应该怎样实现? return pow;}[解决办法]
else if(p=0)
pow=1;
else if(p<0)
pow=1/(n*power(n,p+1));//测试时输入一个整数和一个负数,比如输入5 -1;结果错误;应该怎样实现?
else if(p == 0)这里是 == 号,
pow=1/(n*power(n,p+1));//这里逻辑有错误~~第一遍循环,求倒数,第二遍循环再求倒数,相当求倒数的倒数
所以不能这么做,做好是都按正数的去做,算完后再判断p值求倒!
[解决办法]
- C/C++ code
else if(p<0) { pow=(n*power(n,-p-1));//测试时输入一个整数和一个负数,比如输入5 -1;结果错误;应该怎样实现? pow = 1 / pow ; }
[解决办法]
