加法:
bigint add(bigint a,bigint b) {
bigint ans; //初始化结果变量
ans.len=max(a.len,b.len); //(每一位与长度)
//开始列竖式
for(int i=0; i<ans.len; i++) {
//对每一位进行处理
ans.num[i]+=a.num[i]+b.num[i];
if(ans.num[i]>9/*9以上就有不止一位了*/) {
//判断进位
ans.num[i+1]++; //下一位进一
ans.num[i]-=10; //这一位退十
}
}
if(ans.num[ans.len]>0) ans.len++;
return ans;
}
减法:
bigint dec(bigint a,bigint b) {
if(cmp(a,b)<0) swap(a,b); //注意:一定要将大数前置
bigint ans; //初始化结果变量
ans.len=max(a.len,b.len); //(每一位与长度)
if(cmp(a,b)==0){
ans