c++语言计算2的n次方,2的N次方

news/2024/11/29 19:33:16/

题目的链接为:http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1009

题目为:

2的N次方

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte

总提交:999            测试通过:500

描述

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

输入

正整数N (100≤N≤1000)

输出

2的N次方

样例输入

200

样例输出

1606938044258990275541962092341162602522202993782792835301376

很明显,这个不能直接算...要用数组模拟计算和进位...是属于大数处理题目的一种。

我们用arr这个长度为2000的数组来存储结果。

对于每次乘2,从最后一位开始,乘2,如果有进位,那么此位的值为乘积%10;前面的数,乘2后,判断后面是否有进位,有进位那么加1,再判断此位是否有进位。

从后位遍历到第一位,即可以得到最终结果。

代码如下:

#include

#define MAXNUM 2000

using namespace std;

int arr[MAXNUM];

int main()

{

int n,index;

cin>>n;

//大数乘法

index=0;

for(int i=0;i

{

arr[i]=0;

}

arr[0]=2;

for(int i=1;i

{

int jinwei=0;

for(int j=0;j<=index;j++)

{

int temp=1;

if(j==0)

{

temp=arr[j]*2;

if(temp>=10)

{

jinwei=1;

}

}

else

{

temp=arr[j]*2;

if(jinwei==1)

{

temp=temp+1;

}

if(temp>=10)

{

jinwei=1;

}

else

{

jinwei=0;

}

}

arr[j]=temp%10;

}

if(jinwei==1)

{

index++;

arr[index]=1;

}

}

for(int i=index;i>=0;i--)

{

cout<

}

cout<

system("pause");

return 0;

}


http://www.ppmy.cn/news/500599.html

相关文章

计算2的n次幂

在计算2的n次幂的时候&#xff0c;我们可以采用pow这个函数&#xff0c;但是当数据太大的时候显然int double 等这些数据类型并不能保存下来&#xff0c;就会出现问题&#xff0c;这个时候可以采取数组存储的方式。 1.使用pow函数。 pow(x,y)为计算x的y次幂。 如&#xff1a…

快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方!

将2的幂次方写成二进制形式后&#xff0c;很容易就会发现有一个特点&#xff1a;二进制中只有一个1&#xff0c;并且1后面跟了n个0&#xff1b; 因此问题可以转化为判断1后面是否跟了n个0就可以了。 如果将这个数减去1后会发现&#xff0c;仅有的那个1会变为0&#xff0c;而原来…

2的幂次方表示

任何一个正整数都可以用2的幂次方表示. 例如:1372^72^32^0 同时约定次方用括号来表示,即a^b可表示为a(b) 由此可知,137可表示为:2(7)2(3)2(0) 进一步:72^222^0 (2^1用2表示) 322^0 所以最后137可表示为:2(2(2)22(0))2(22(0))2(0) 又如:13152^102^82^521 所以1315最后可表示为:2…

2的5次方用计算机怎么算,2的5次方(2的5次方怎么算)

2的5次方2x2x2x2x24x4x216x232 32。 你可以适当的记一些常见的次方数据。就如2的1--10次方&#xff0c;分别为 2,4,8,16,32,64,128,256,512,1024。 在word文挡里 选中5&#xff0c;右键&#xff0c;选择字体&#xff0c;在“上标”前打钩&#xff0c;确定 2的5次方&#xff0c;…

12:计算2的N次方

原题链接 总时间限制: 1000ms 内存限制: 65536kB 描述 任意给定一个正整数N(N<100)&#xff0c;计算2的n次方的值。 输入 输入一个正整数N。 输出 输出2的N次方的值。 样例输入 5 样例输出 32提示 高精度计算 源码 #include<iostream> using namespace std; int m…

任何一个正整数都可以用2的幂次方表示:137=2^7+2^3+2^0

一、题目描述 例如: 137272320,同时约定几次方用括号来表示&#xff0c;即ab可表示为a(b),由此可知,137可表示为: 2(7)2(3)2(0)&#xff0c;进一步: 722220 (2^1用2表示) 322^0.所以最后137可表示为: 2(2(2)22(0))2(22(0))2(0). 又如: 13152^ 10282521.所以1315最后可表示为: …

2的幂次方表示题解

8758:2的幂次方表示 总时间限制: 1000ms 内存限制: 65536kB 描述 任何一个正整数都可以用2的幂次方表示。例如&#xff1a; 137272320 同时约定方次用括号来表示&#xff0c;即ab可表示为a(b)。由此可知&#xff0c;137可表示为&#xff1a; 2(7)2(3)2(0) 进一步&…

1170:计算2的N次方

1170&#xff1a;计算2的N次方 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 23064 通过数: 12225 【题目描述】 任意给定一个正整数N(N<100)&#xff0c;计算2的n次方的值。 【输入】 输入一个正整数N。 【输出】 输出2的N次方的值。 【输入样例】 5 【输…