//高精度加法 #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; }