加
#include<bits/stdc++.h>
using namespace std;
char a[501],b[501];
int a1[501],b1[501];
int c[501],c1;
int main(){
int r;
scanf("%s",a);
scanf("%s",b);
int n=strlen(a);
int m=strlen(b);
for(int i=0;i<n;i++)a1[n-i]=a[i]-48;
for(int i=0;i<m;i++)b1[m-i]=b[i]-48;
int cl=1;
r=0;
while( (c1<=n) || (c1<=m))
{
c[c1]=a1[c1]+b1[c1]+r;
r=c[c1]/10;
c[c1]=c[c1]% 10;
c1++;
}
c[c1]=r;
if(c[c1]==0)c1--;
for(int i=c1;i>=1;i--)cout<<c[i];
return 0;
}
减
#include<bits/stdc++.h>
using namespace std;
char a[10087],b[10087];
int na[10090], nb[10090], nc[10090];
int main()
{
cin>>a>>b;
if((strlen(a)<strlen(b)) || ( strcmp(a,b)<0 && strlen(a)==strlen(b)))
{
swap(a,b);
cout<<"-";
}
int l1=strlen(a),l2=strlen(b),l3;
for(int i=0;i<l1;i++) na[l1-i]=a[i]-'0';
for(int i=0;i<l2;i++) nb[l2-i]=b[i]-'0';
for(int i=1;i<=l1||i<=l2;i++)
{
if(na[i]<nb[i])
{
na[i+1]--;
na[i]+=10;
}
nc[i]=na[i]-nb[i];
l3=i;
}
while(nc[l3]==0&&l3>1) l3--;
for(int i=l3;i>0;i--)cout<<nc[i];
return 0;
}
乘
#include <iostream>
#include <cstring>
using namespace std;
int a[300], b[300], c[300];
char s1[300], s2[300], s3[300];
int main()
{
cin >> s1 >> s2;
int la, lb, len;
la = strlen(s1);
lb = strlen(s2);
for(int i=1;i<=la;i++)
a[i] = s1[la-i] - 48;
for(int i=1;i<=lb;i++)
b[i] = s2[lb-i] - 48;
for(int i=1;i<=la;i++)
for(int j=1;j<=lb;j++)
{
c[i+j-1] = c[i+j-1] + a[i] * b[j];
c[i+j] = c[i+j] + c[i+j-1]/10;
c[i+j-1] = c[i+j-1] % 10;
}
len = la + lb;
while(c[len]==0 && len>1)
len--;
for(int i=len;i>=1;i--)
cout << c[i];
return 0;
}