一、高精度加法
#include
#include
#include
int a[1010],b[1010],c[1010];
char s[1010];
int main(){
int i,j,k,m,n;
int alen,blen,clen;
gets(s);
alen=strlen(s);
for(i=alen-1;i>=0;i--)
a[alen-i]=s[i]-'0';
gets(s);
blen=strlen(s);
for(i=blen-1;i>=0;i--)
b[blen-i]=s[i]-'0';
clen=alen>blen?alen:blen;
for(i=1;i<=clen;i++)
c[i]=a[i]+b[i];
for(i=1;i=10){
c[i+1]++;
c[i]-=10;
}
for(i=clen;i>=1;i--)
printf("%d",c[i]);
return 0;
}
二、高精度减法
#include
#include
#include
int a[1010],b[1010],c[1010];
char s[1010];
int main(){
int i,j,k,m,n;
int alen,blen,clen;
gets(s);
alen=strlen(s);
for(i=alen-1;i>=0;i--)
a[alen-i]=s[i]-'0';
gets(s);
blen=strlen(s);
for(i=blen-1;i>=0;i--)
b[blen-i]=s[i]-'0';
for(i=1;i<=alen;i++)
c[i]=a[i]-b[i];
for(i=1;i=1;i--)
printf("%d",c[i]);
return 0;
}
三、高精度乘法
#include
#include
#include
int a[1010],b[1010],c[2010];
char s[1010];
int main(){
int i,j,k,m,n;
int alen,blen,clen;
gets(s);
alen=strlen(s);
for(i=alen-1;i>=0;i--)
a[alen-i]=s[i]-'0';
gets(s);
blen=strlen(s);
for(i=blen-1;i>=0;i--)
b[blen-i]=s[i]-'0';
for(i=1;i<=alen;i++)
for(j=1;j<=blen;j++)
c[i+j-1]+=a[i]*b[j];
for(i=1;i=10){
c[i+1]+=c[i]/10;
c[i]%=10;
}
for(i=alen+blen-1;i>=1;i--)
printf("%d",c[i]);
return 0;
}
四、高精度除法
#include
#include
#include
int a[1010],c[2010];
char s[1010],tmp;
int main(){
int i,j,k,m,n;
int alen,clen;
gets(s);
alen=strlen(s);
for(i=0;i0)
printf("\n余数是:%d\n",k);
return 0;
}