我想用N的大值计算2 ^ N,即用mod操作计算高达10 ^ 9。 使用迭代方法,但是输入10 ^ 8需要花费大量时间。
for(long i=1;i<=n;i++){
res=(res*2)%1000000007
}
花费时间计算n = 10 ^ 8及以上。
答案 0 :(得分:0)
您可以通过平方以及乘以2来提高速度 - 例如可以达到2 ^ 4,因为2 * 2 =&gt; 4,4 * 4 =&gt; 16。
从2开始。如果N是偶数,则取平方所得并将N减半。如果N为奇数,则乘以2并递减N.随时应用模数。
您可能必须小心平方不会溢出。