【1170】计算2的N次方

【题目描述】
       任意给定一个正整数N(N≤100),计算2的n次方的值。
【输入】
       输入一个正整数N。
【输出】
       输出2的N次方的值。
【输入样例】
       5
【输出样例】
       32
【参考程序】

#include <cstdio> 
#include <iostream>
#include <cstring>
using namespace std;

int main() {
	int n, s, len, a[10001];				// len记录数组a的实际长度 
	scanf("%d", &n);
	a[1] = 1;								// 个位数初始化为1
	s = 0;									// s记录实际的位数 
	len = 1;								// len记录数位 
	
	for (int i=1; i<=n; i++) {				// 进行n次连乘 
		 for (int j=1; j<=len; j++) {		 
		 	a[j] *= 2;						// 每个位数都乘以2
		 }
		 for (int j=1; j<=len; j++) {
		 	s = 0;
		 	if (a[j] > 9) {					// 判断当前的数是否需要进位 
		 		a[j+1] += a[j] / 10;		// 进位
				 a[j] %= 10;				// 只留下个位
				 s = max(s, j+1); 			// s记录实际位数 
			 }
		 } 
		 len = max(len, s);					// 判断当前的数的位数,避免多余地乘 
	} 
	
	for (int i=len; i>=1; i--) {
		cout << a[i];
	} 
	
	return 0;
}

发布了49 篇原创文章 · 获赞 0 · 访问量 1035

猜你喜欢

转载自blog.csdn.net/developer_zhb/article/details/105021842