问题标题: 酷町堂:1794   高精度减法

0
0
已解决
邵逸儒
邵逸儒
中级天翼
中级天翼

1794   高精度减法

题目描述 Description

给两个正整数a和b,计算它们的差。题目保证a>=b

输入描述 Input Description

两行每行一个数,分别表示a和b(位数达10000位)。

输出描述 Output Description

输出它们的差。

样例输入 Sample Input

 

2
1

样例输出 Sample Output

 

1

数据范围及提示 Data Size & Hint

位数达10000位


0
已采纳
王梓澳
王梓澳
中级光能
中级光能

核心代码如下: 

memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    gets(n1);
    gets(n2);
//    if (strlen(n1)<strlen(n2)||(strlen(n1)==strlen(n2))&&strcmp(n1,n2)<0)
//    {
//        strcpy(n,n1);
//        strcpy(n1,n2);
//        strcpy(n2,n);
//        cout<<"-";
//    }
    lena=strlen(n1);lenb=strlen(n2);
    for (i=0;i<=lena-1;i++) a[lena-i]=int(n1[i]-'0');
    for (i=0;i<=lenb-1;i++) b[lenb-i]=int(n2[i]-'0');
    i=1;
    while (i<=lena||i<=lenb)
    {
        if (a[i]<b[i])
        {
            a[i]+=10;
            a[i+1]--;
        }
        c[i]=a[i]-b[i];
        i++;
    }
    lenc=i;
    while((c[lenc]==0)&&(lenc>1)) lenc--;
    for (i=lenc;i>=1;i--) cout<<c[i];

 

0
0
我要回答