输入两个字符串形式的数字超出long long上限
进行运算
加法:
#include<iostream>
using namespace std;
#define MAX 250
class Clc
{
public:
string str;
int len,a[MAX];
Clc();//构造器
~Clc();
friend Clc operator+(Clc &num1,Clc &num2);
void print();
};
Clc::Clc()
{
memset(a,0,sizeof(a));//将数组a初始化为0
len=str.length();
for(int i=0;i<len;i++)
{
a[i]=str[i]-'0';
}
}
Clc::~Clc()
{
}
Clc operator+(Clc &num1,Clc &num2)
{
Clc anser;
anser.len=(num1.len>num2.len?num1.len:num2.len)+1;
for(int i=0;i<anser.len;i++)
{
anser.a[i]=num1.a[i]+num2.a[i];
if(anser.a[i]>=10)
{
anser.a[i]=anser.a[i]%10;
anser.a[i+1]=anser.a[i+1]+1;
}
}
return anser;
}
void Clc::print()
{
while((a[len]==0)&&len>0)
len--;
for(int i=len;i>=0;i--)
{
cout<<a[i];
}
}
int main()
{
Clc num1,num2,anser;
cout<<"输入第一个数"<<endl;
cin>>num1.str;
cout<<"输入第二个数"<<endl;
cin>>num2.str;
cout<<num1.str<<"+"<<num2.str<<"="<<endl;
anser=num1+num2;
anser.print();
return 0;
}