高精度计算 2的n次编程精确计算2的N次方.(N是介于100和1000之间的整数).样例输入200样例输出1606938044258990275541962092341162602522202993782792835301376(最好用C语言编)

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 15:49:18
高精度计算 2的n次编程精确计算2的N次方.(N是介于100和1000之间的整数).样例输入200样例输出1606938044258990275541962092341162602522202993782792835301376(最好用C语言编)

高精度计算 2的n次编程精确计算2的N次方.(N是介于100和1000之间的整数).样例输入200样例输出1606938044258990275541962092341162602522202993782792835301376(最好用C语言编)
高精度计算 2的n次
编程精确计算2的N次方.(N是介于100和1000之间的整数).
样例输入
200
样例输出
1606938044258990275541962092341162602522202993782792835301376
(最好用C语言编)

高精度计算 2的n次编程精确计算2的N次方.(N是介于100和1000之间的整数).样例输入200样例输出1606938044258990275541962092341162602522202993782792835301376(最好用C语言编)
C++代码
#include
#include
#include
#include
using namespace std;
string add(const string &a,const string &b);
string multiply(const string &a,char b);
string multi(const string &a,const string &b);
string twoN(int n);
void main()
{
int a;
cin>>a;
string result=twoN(a);
cout=0;--i)
{
r[i]=sh[i]+lo[i]-48+g;
if(r[i]>'9')
{
r[i]-=10;
g=1;
}
else
{
g=0;
}
}
if(g==1)
r="1"+r;
return r;
}
string multiply(const string &a,char b)
{
string r;
r.resize(a.size()); int g=0;
if(b=='0')
return "0";
if(b=='1') //加快计算
return a;
for(int i=a.size()-1;i>=0;--i)
{
r[i]=(a[i]-48)*(b-48)%10+48+g;
if(r[i]>'9')
{
r[i]-=10;
g=((a[i]-48)*(b-48))/10+1;
continue;
}
g=((a[i]-48)*(b-48))/10;
}
if(g!=0)
r.insert(0,string(1,g+48));
return r;
}
string multi(const string &a,const string &b)
{
string r("0");
string *c=new string[b.size()];
for(int i=0;i