1、加法
#include<bits/stdc++.h>
using namespace std;
string pa,pb;
int p1[10001],p2[10001],p3[10001];
int main(){
int tmp;
cin>>pa>>pb;
for(int i=0,tmp=pa.size()-1;i<pa.size();i++,tmp--)
p1[tmp]=pa[i]-'0';
for(int i=0,tmp=pb.size()-1;i<pb.size();i++,tmp--)
p2[tmp]=pb[i]-'0';
int i,c=0;
for(i=0;i<max(pa.size(),pb.size());i++){
p3[i]=(p1[i]+p2[i]+c)%10;
c=(p1[i]+p2[i]+c)/10;
}
while(c!=0){
p3[i]=c%10;
c/=10;
i++;
}
for(int a=i-1;a>=0;a--)
cout<<p3[a];
return 0;
}
2、减法(不考虑负数)
#include<bits/stdc++.h>
using namespace std;
string pa,pb;
int p1[10001],p2[10001],p3[10001];
int main(){
int tmp;
cin>>pa>>pb;
for(int i=0,tmp=pa.size()-1;i<pa.size();i++,tmp--)
p1[tmp]=pa[i]-'0';
for(int i=0,tmp=pb.size()-1;i<pb.size();i++,tmp--)
p2[tmp]=pb[i]-'0';
int i;
for(i=0;i<pa.size();i++){
if(p1[i]<p2[i]){
p1[i]+=10;
p1[i+1]--;
}
p3[i]=p1[i]-p2[i];
}
while(p3[i]==0)
i--;
i++;
int times=0;
for(int a=i-1;a>=0;a--){
cout<<p3[a];
times++;
}
if(times==0)
cout<<0;
return 0;
}
3、乘法(高精度乘普通整数)
#include<bits/stdc++.h>
using namespace std;
string pa;
int p1[10001],p2,p3[10001];
int main(){
int tmp;
cin>>pa>>p2;
for(int i=0,tmp=pa.size()-1;i<pa.size();i++,tmp--)
p1[tmp]=pa[i]-'0';
int i,c=0;
for(i=0;i<pa.size();i++){
p3[i]=(p1[i]*p2+c)%10;
c=(p1[i]*p2+c)/10;
}
while(c!=0){
p3[i]=c%10;
c/=10;
i++;
}
for(int a=i-1;a>=0;a--)
cout<<p3[a];
return 0;
}