#include <iostream> using namespace std; //计算2的N次幂 //一般方法,时间复杂度为2^n __int64 pow2(int n) { __int64 result = 1; while (n--) { result <<= 1; } return result; } //递归方法,时间复杂度为2^n __int64 reversepow2(int n) { return (n < 1) ? 1 : pow2(n - 1)<<1; } /////////////////////////////////////////////////////////// //快速求2的N次幂,时间复杂度为logn __int64 sqr(__int64 a) { return a*a; } __int64 quickpow2(int n) { if (n < 1) return 1; return (n & 1) ? sqr(quickpow2(n >> 1)) << 1 : sqr(quickpow2(n >> 1)); } int main() { __int64 sum = 0; sum = pow2(10); cout << sum << endl; return 0; }