【发布时间】:2011-09-03 04:19:59
【问题描述】:
我想计算 10 的幂减去m。除了使用数学函数pow(10, -m),还有什么快速高效的方法吗?
我向 SO 的 c++ 大师提出的一个简单问题是,如您所知,就像基数 2 一样,10 也是一个特殊的基数。如果某个值n乘以10的幂减去m,则相当于将n的小数点左移m次。我认为这一定是一种快速有效的应对方式。
【问题讨论】:
-
m 是整数吗?它总是积极的吗?它的最大值是多少?除非您列出诸如此类的约束,否则您将无法获得最佳解决方案。
-
正如一些答案所说,9+1 不是一个特殊的基础,除非你碰巧是一个人,巧合的是,结果证明有这个数量的手指。但是您的计算机没有,因此请避免以 10 为基数。仅在处理有人会实际读取数字的数据时使用它才有意义,但这仅在不超过 100 个数字时才有意义-对于此类少量,性能根本不重要。
-
您需要积分解决方案还是浮点解决方案?
n或m是编译时常量吗?