oj118

#include<stdio.h>
#include<string.h>
int main()
{
    char a[201],b[201];
    while(scanf("%s%s",a,b)!=EOF)
    {
        int a1=strlen(a);
        int g=a1,i;
        int b1=strlen(b);
        int e[201],f[201];
        for(i=0;i<a1;i++)
            e[i]=a[i]-'0';
        for(i=0;i<b1;i++)
            f[i]=b[i]-'0';
        for(i=b1-1;i>=0;i--)
        {
            e[g-1]=e[g-1]-f[i];
            if(e[g-1]<0)
            {
                e[g-2]--;
                e[g-1]+=10;
            }
            g--;
        }
        for(i=a1-b1-1;i>=0;i--)
        {
            if(e[i]<0)
            {
                e[i-1]--;
                e[i]+=10;
            }
            else break;
        }
        for(i=0;i<a1;i++)
            printf("%d",e[i]);
        printf("
");
    }
    return 0;
}
#118:  求两个大的正整数相减的差。


时间限制:2 sec.  内存限制:128 MB. 

试题描述

求两个大的正整数相减的差。

输入格式

共2行,第1行是被减数a,第2行是减数b(a > b)。每个大整数不超过200位,不会有多余的前导零。

输出格式

一行,即所求的差。

样例输入
9999999999999999999999999999999999999
9999999999999

样例输出
9999999999999999999999990000000000000

其它说明
原文地址:https://www.cnblogs.com/1079722822a/p/8016118.html