1009_2的N次方

2的N次方

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 2504            测试通过 : 1213 

比赛描述

编程精确计算2的N次方。(N是介于100和1000之间的整数)。



输入

正整数N (100N1000)

输出

2N次方

样例输入

200

样例输出

1606938044258990275541962092341162602522202993782792835301376

题目来源

NUPT

本体主要考虑的是大数处理,该结果超出数据类型的存储范围。

思路:用数组去存储各个位上的数。

代码如下:

#include <iostream>
using namespace std;

int main()
{
	int N;
	cin >> N;
	if (N<100 || N>1000)
		return 0;
	int a[1001] = { 0 };
	a[1] = 1;										//初始化为1
	int wshu = 1;								//记录最大的位数
	int jw;											//进位
	for (int m = 1; m <= N; m++)
	{
		jw = 0;										//进位清零
		for (int i = 1; i <= wshu; i++)
		{
			a[i] = 2 * a[i] + jw;
			jw = a[i] / 10;
			a[i] %= 10;
		}
		if (jw)
		{
			wshu++;
			a[wshu] = jw;
		}
	}
	for (int n = wshu; n > 0; n--)
		cout << a[n];
	cout << endl;
	return 0;
}


你可能感兴趣的:(C++,ACM,2的n次方,1009,南邮)