C:x到幂n使用重复平方而没有递归函数
这是我的代码,它计算2提升到16的功率
#include #include int main() { int i; long int x=2; int n=16; int k=log(n)/log(2); for(i=1;i<=k;i++) { x=x*x; } printf("%d",x); printf("\n%d",k); }
我想计算这个,当x的幂,即n不是2的幂时,例如。 比如n = 19,n = 43等
我怀疑你正在通过平方来寻找取幂,这是这样的:
unsigned int intpow(unsigned int base, unsigned int exponent) { unsigned int result = 1; while (exponent > 0) { while ((exponent & 1) == 0) { exponent /= 2; base *= base; } exponent--; result *= base; } return result; }
为了使代码适用于其他function进行这些更改,请乘以获得额外的功率。
int main() { int i; long int x=2; int n=7; int k=log(n)/log(2); int y,z; y=n-pow(2,k); z=1; for(i=0;i