加法:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<ctime>
#include<cctype>
#include<algorithm>
using namespace std;
const int N=205;
char s[N],t[N];
int len,n,m,a[N],b[N],c[N];
int main()
{
scanf("%s",s+1);
int n=strlen(s+1);
for(int i=1;i<=n;i++)
a[n-i+1]=s[i]-'0';
scanf("%s",t+1);
int m=strlen(t+1);
for(int i=1;i<=m;i++)
b[m-i+1]=t[i]-'0';
len=max(n,m);
int x=0;
for(int i=1;i<=len;i++)
{
x=a[i]+b[i]+x;
c[i]=x%10;
x=x/10;
}
if(x) c[++len]=x;
for(int i=len;i>=1;i--)
cout<<c[i];
return 0;
}
减法:
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
const int N=205;
char s[N],t[N];
int a[N],b[N],c[N],n,m,len;
int main()
{
scanf("%s",s+1);
n=strlen(s+1);
for(int i=1;i<=n;i++)
a[n-i+1]=s[i]-'0';
scanf("%s",t+1);
m=strlen(t+1);
for(int i=1;i<=m;i++)
b[m-i+1]=t[i]-'0';
if(n<m||(n==m)&&strcmp(s+1,t+1)<0)
{
cout<<"-";
for(int i=1;i<=m;i++)
swap(a[i],b[i]);
swap(n,m);
}
int x;
for(int i=1;i<=n;i++)
{
x=10+a[i]-b[i];
c[++len]=x%10;
a[i+1]=a[i+1]+x/10-1;
}
while(!c[len]&&len>1) len--;
for(int i=len;i>=1;i--)
cout<<c[i];
return 0;
}
乘法
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
const int N=205;
char s[N],t[N];
int a[N],b[N],c[100000],n,m,len;
int main()
{
scanf("%s",s+1);
n=strlen(s+1);
for(int i=1;i<=n;i++)
a[n-i+1]=s[i]-'0';
scanf("%s",t+1);
m=strlen(t+1);
for(int i=1;i<=m;i++)
b[m-i+1]=t[i]-'0';
for(int i=1;i<=n;i++)
{
int x=0;
for(int j=1;j<=m;j++)
{
x=a[i]*b[j]+x+c[i+j-1];
c[i+j-1]=x%10;
x=x/10;
}
c[i+m]+=x;
}
int len=n+m;
while(!c[len]&&len>1) len--;
for(int i=len;i>=1;i--)
cout<<c[i];
return 0;
}
除法(大数除以int范围的数)
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
const int N=205;
char s[N];
int a[N],n,b,c[N],len=1;
int main()
{
scanf("%s",s+1);
n=strlen(s+1);
for(int i=1;i<=n;i++)
a[i]=s[i]-'0';
scanf("%d",&b);
int x=0;
for(int i=1;i<=n;i++)
{
c[i]=(x*10+a[i])/b;
x=(x*10+a[i])%b;
}
while(!c[len]&&len<n) len++;
for(int i=len;i<=n;i++)
cout<<c[i];
cout<<endl;
cout<<x<<endl;
return 0;
}