//高精度加法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int a[1000],b[1000],c[1000];
char s[1000];
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<clen;i++)
if(c[i]>=10){
c[i+1]++;
c[i]-=10;
}
for(i=clen;i>=1;i--)
printf("%d",c[i]);
puts("");
system("pause");
return 0;
}
//高精度减法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int a[1000],b[1000],c[1000];
char s[1000];
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<alen;i++)
if(c[i]<0){
c[i+1]--;
c[i]+=10;
}
while(c[alen]==0 && alen!=1)
alen--;
for(i=alen;i>=1;i--)
printf("%d",c[i]);
puts("");
system("pause");
return 0;
}
//高精度乘法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int a[1000],b[1000],c[2000];
char s[1000];
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<alen+blen-1;i++)
if(c[i]>=10){
c[i+1]+=c[i]/10;
c[i]%=10;
}
for(i=alen+blen-1;i>=1;i--)
printf("%d",c[i]);
puts("");
system("pause");
return 0;
}
//高精度除法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int a[1000],c[2000];
char s[1000],tmp;
int main(){
int i,j,k,m,n;
int alen,clen;
gets(s);
alen=strlen(s);
for(i=0;i<alen;i++)
a[i+1]=s[i]-'0';
//tmp=getchar();
scanf("%d",&m);
k=a[1];i=1;
while(k<m){
i++;
k=k*10+a[i];
}
clen=0;
c[++clen]=k/m;
k%=m;
i++;
for(;i<=alen;i++){
k=k*10+a[i];
c[++clen]=k/m;
k%=m;
}
puts("结果是:");
for(i=1;i<=clen;i++)
printf("%d",c[i]);
if(k>0)
printf("\n余数是:%d\n",k);
puts("");
system("pause");
return 0;
}
高精度加减乘除
最新推荐文章于 2020-10-01 16:52:57 发布