1.6编程基础之一维数组 11.大整数减法

描述

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

输入共2行,第1行是被减数a,第2行是减数b(a> b)。每个大整数不超过200位,不会有多余的前导零。输出一行,即所求的差。样例输入

9999999999999999999999999999999999999
9999999999999

样例输出

9999999999999999999999990000000000000

#include<stdio.h>
#include<string.h>
int main()
{
    int  i,j,str1,str2,k=0;
    int  a1[255],a2[255],a3[255];
    char c1[255],c2[255];
    for(i=0; i<255; i++)
    {
        a1[i]=0;
        a2[i]=0;
    }
    scanf("%s",c1);
    scanf("%s",c2);
    str1=strlen(c1);
    str2=strlen(c2);
    j=0;
    for(i=str1-1; i>=0; i--)
        a1[j++]=c1[i]-'0';
    j=0;
    for(i=str2-1; i>=0; i--)
        a2[j++]=c2[i]-'0';
    for(i=0; i<255; i++)
    {
        a1[i]-=a2[i];
        if(a1[i]<0)
        {
            a1[i]+=10;
            a1[i+1]--;
        }
    }
    j=0;
    for(i=254; i>=0; i--)
        a3[j++]=a1[i];
    for(i=0; i<255; i++)
    {
        if(a3[i]!=0)   k=1;
        if(k==1)   printf("%d",a3[i]);
    }
    if(k==0)  printf("0");
    printf("\n");
    return 0;
}

 

全部评论

相关推荐

03-26 13:44
南华大学 Java
在看面经的花生米很野蛮:这种情况下你当然要回答,你也是吗!!!!我超喜欢他的XXXXX
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务