g****y 发帖数: 199 | 1 ☆─────────────────────────────────────☆
DigitalPig (North! | 想做Polymer Physics) 于 (Sat Sep 15 15:55:30 2007) 提到:
比如 x^6 在FORTRAN里面要写x**6 实际上就是x*x*x*x*x*x 要六次乘法。
如果要提高乘方的效率 尽量减少乘法的数目 怎么办呢?
是不是用对数运算?
谢谢!
☆─────────────────────────────────────☆
skatou (skatou) 于 (Sat Sep 15 16:21:55 2007) 提到:
乘方哎,最多64次就爆int64了吧,直接乘也没有关系吧
不过可以
long long pow(long long x, int exp) {
long long r = 1, ret = x;
while (exp > 1) {
if (exp & 1) {
r *= ret;
}
ret *= ret; | m****s 发帖数: 18160 | 2 辛苦了!:)
【在 g****y 的大作中提到】 : ☆─────────────────────────────────────☆ : DigitalPig (North! | 想做Polymer Physics) 于 (Sat Sep 15 15:55:30 2007) 提到: : 比如 x^6 在FORTRAN里面要写x**6 实际上就是x*x*x*x*x*x 要六次乘法。 : 如果要提高乘方的效率 尽量减少乘法的数目 怎么办呢? : 是不是用对数运算? : 谢谢! : ☆─────────────────────────────────────☆ : skatou (skatou) 于 (Sat Sep 15 16:21:55 2007) 提到: : 乘方哎,最多64次就爆int64了吧,直接乘也没有关系吧 : 不过可以
|
|