用的高精(结构体封装),在洛谷上AC,本地却运行不了
#include<bits/stdc++.h>
using namespace std;
struct bigint
{
int len,a[100000];
bigint(int x=0)
{
memset(a,0,sizeof(a));
len=1;
for(;x;len++)
{
a[len]=x%10;x/=10;
}
len--;
}
int &operator[](int i)
{
return a[i];
}
void zhanp(int x)
{
len=x;
for(int i=1;i<=len;i++)
{
a[i+1]+=a[i]/10;
a[i]%=10;
}
while(!a[len]) len--;
}
bigint print()
{
for(int i=max(1,len);i>=1;i--)
{
printf("%d",a[i]);
}
}
};
bigint read(bigint a)
{
int len=0;char ch[100000];
cin>>ch;
len=strlen(ch);
for(int i=1;i<=len;i++)
{
a[i]=ch[len-i]-48;
}
a.len=len;
return a;
}
bigint operator+(bigint a,bigint b)//重载
{
bigint c;
int len=max(a.len,b.len);
for(int i=1;i<=len;i++)
{
c[i]+=a[i]+b[i];
}
c.zhanp(len+1);
return c;
}
/*bigint operator*(bigint a,bigint b)
{
bigint c(0);
int lena=a.len,lenb=b.len;
for(int i=1;i<=lena;i++)
for(int j=1;j<=lenb;j++)
{
c[i+j-1]+=a[i]*b[i];
}
c.zhanp(lena+lenb);
return c;
}*/
int main()
{
bigint a=read(a);bigint b=read(b);
a=a+b;//这一句删去后程序就能正常运行
a.print();
}
把倒数第三行删去程序就能正常运行,加上后连输入都输不进去。。。
是DEVC++的问题吗?
(程序参考了深基P1009的代码)