快速求2的n次幂(防Time Limit Exceeded)

用c++写的一段代码,快速求出2的n次幂(数组实现)

代码如下:

#include <iostream>
const int N = 1000;  //数组长度,可增加,但必须是常量
using namespace std;
int main(){
     
	int a[N] = {
     1};  //初始化数组第一位为1,其余为0;
	int n,m;
	cin>>n;   //获取幂次
	m = 1;  //每次乘2操作都要从下标0开始到下标为m-1
	for(int i = 0;i < n;i++){
     
		int t = 0;
		for(int j = 0;j < m;j++)
		{
     
			t+=a[j]*2;   
			a[j] = t%10;   
			t/=10;   //如果t>10就进位
}
		if(t)  
		a[m++] = 1;  //进位操作,将数组中下标为m的值变为1,m在进行自增。
		
	}
	for(int i = m - 1;i >= 0;i--)     //因为进位后要进行自增操作,所以最高位下标为m-1
	cout<<a[i];        //从最高位开始输出结果
	cout<<endl;
}

谢谢观看

你可能感兴趣的:(c++,算法,程序人生,面试,经验分享)