C++ 计算大n的2^n

C++ 计算大n的2^n,c++,algorithm,C++,Algorithm,我想计算2^N的大值N,即使用mod运算最多10^9。 使用迭代方法,但输入10^8需要花费大量时间 对于(长i=1;i你可以通过平方和乘以2来提高速度-例如,2^4可以达到2*2=>4,4*4=>16 从2开始。如果N是偶数,则将你的值平方,然后将N减半。如果N是奇数,则乘以2并减小N。在进行时应用模数 你可能必须小心平方运算不会溢出。2^n相当于1模应该达到什么?你的算法是O(n)。当然,大n需要花费时间。@BartekBanachewicz但他在每一步都计算模,所以它永远不会有数百万位长。

我想计算2^N的大值N,即使用mod运算最多10^9。 使用迭代方法,但输入10^8需要花费大量时间


对于(长i=1;i你可以通过平方和乘以2来提高速度-例如,2^4可以达到2*2=>4,4*4=>16

从2开始。如果N是偶数,则将你的值平方,然后将N减半。如果N是奇数,则乘以2并减小N。在进行时应用模数


你可能必须小心平方运算不会溢出。

2^n
相当于
1模应该达到什么?你的算法是O(n)。当然,大n需要花费时间。@BartekBanachewicz但他在每一步都计算模,所以它永远不会有数百万位长。