【发布时间】:2010-09-11 05:09:07
【问题描述】:
在 C 中将一个整数乘以另一个整数的幂的最有效方法是什么?
// 2^3
pow(2,3) == 8
// 5^5
pow(5,5) == 3125
【问题讨论】:
-
当您说“效率”时,您需要指定与什么相关的效率。速度?内存使用情况?代码大小?可维护性?
-
C 没有 pow() 函数吗?
-
是的,但这适用于浮点数或双精度数,而不适用于整数
-
如果你坚持使用实际的
ints(而不是一些巨大的int类),很多对ipow的调用都会溢出。这让我想知道是否有一种聪明的方法来预先计算一个表并将所有非溢出组合减少为一个简单的表查找。这将比大多数一般答案占用更多内存,但在速度方面可能更有效。 -
pow()不是一个安全函数
标签: c algorithm math exponentiation