很好的C++高精度模板,本文均为原创。如发现BUG,请留言,感谢。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cstdlib>
using namespace std;
struct bignum
{
string s;
string delzero()//去前导0
{
for(int i=0;i<s.size();i++)
{
if(s[i]!=48)
{
s=s.substr(i,s.size()-i);
return s;
}
}
s="0";
return s;
}
string align(string s,int len)//加减法的位对齐
{
for(int i=s.size();i<len;i++)
s=(char)48+s;
return s;
}
bignum()
{
s="";
}
bignum(int num)
{
*this=num;
}
bignum operator =(int num)
{
char ss[100];
sprintf(ss,"%d",num);
s=ss;
return *this;
}
bignum operator +(bignum b)//加
{
bignum c;int jin=0;
int len=s.size()>=b.s.size()?s.size():b.s.size();
s=align(s,len);b.s=align(b.s,len);
for(int i=s.size()-1;i>=