【高精度算法】A-B(答案可负)

来源:互联网 发布:美国指数型基金数据 编辑:程序博客网 时间:2024/05/22 08:09
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>char s1[10010],s2[10010],s3[10010];int a[10010],b[10010],c[10010];int main(){    int i,j,k,m,n,alen,blen,clen;    gets(s1);    alen=strlen(s1);    gets(s2);    blen=strlen(s2);    if(alen<blen ||(alen==blen && strcmp(s1,s2)<0)){        printf("-");strcpy(s3,s1);strcpy(s1,s2);strcpy(s2,s3);                 }    alen=strlen(s1);    blen=strlen(s2);    for(i=0;i<alen;i++)        a[i+1]=s1[alen-i-1]-'0';    for(i=0;i<blen;i++)        b[i+1]=s2[blen-i-1]-'0';    for(i=1;i<=alen;i++)        c[i]=a[i]-b[i];    clen=alen;    for(i=1;i<=clen;i++){        if(c[i]<0){            c[i+1]--;            c[i]+=10;                     }                        }    while(c[clen]==0 && clen>1)clen--;    for(i=clen;i>=1;i--)        printf("%d",c[i]);    puts("");    return 0;    }

1 0
原创粉丝点击