源代码如下,第四个点AC
#include<bits/stdc++.h>
#define _for(i,a,b) for(short i=(a);i<=(b);i++)
using namespace std;
struct _int{
public:
short num[501];//始终为倒序
short f,dig;
_int(){
memset(num,0,sizeof(num));
f=1;dig=0;
}
void read(){
char ch=getchar();
if((ch>='0'&&ch<='9')||ch=='-'||ch=='+') read();
if(ch=='-'||ch=='+'){
f=(ch=='+')?1:-1;
return;
}
if(ch>='0'&&ch<='9')num[++dig]=ch-'0';
return;
}
void print(){
if(f==-1) printf("-");
for(int i=dig;i>=1;i--){
printf("%d",num[i]);
}
return;
}
_int operator +(_int add){
//if(this->f!=add.f)
_int ans;
ans.dig=max(this->dig,add.dig);
short upper=0;
_for(i,1,ans.dig){
ans.num[i]=this->num[i]+add.num[i]+upper;
upper=ans.num[i]/10;
ans.num[i]%=10;
}
if(upper!=0) ans.num[++ans.dig]=upper;
return ans;
}
};
int main(){
_int a,b;
a.read();
b.read();
(a+b).print();
}
这个代码在DEV-C++的控制台里应该是AC,但是在洛谷在线IDE里只能读取到第一个数 输入部分在read()里,望大佬点评修改