MY name is ruhul amin

ISLAMIC UNIVERSITY OF KUSHTIA

Saturday, March 9, 2013

big integer subtruction

#include<stdio.h>
#include<string.h>
int main()
{
    char a[10000],b[100],c[10000],d[10000],result[10000];
    int i,j,k,la,lb,m,l,n,s,v,u,y,x,h,z,p,q,t,e,as;
    while(scanf("%s%s",a,b)==2)
    {
        la=strlen(a);
        lb=strlen(b);
        if(la>lb)
        {
        i=0;
        for(j=la-1;j>=0;j--)
        {
            c[i]=a[j];
            i++;
        }
        l=i;
        k=0;
        for(m=lb-1;m>=0;m--)
        {
            d[k]=b[m];
            k++;
        }
        }
        else if(lb>la)
        {
        i=0;
        printf("-");
        for(j=lb-1;j>=0;j--)
        {
            c[i]=b[j];
            i++;
        }
        l=i;
        k=0;
        for(m=la-1;m>=0;m--)
        {
            d[k]=a[m];
            k++;
        }
        }
        else if(la==lb)
        {
        s=strcmp(a,b);
        if(s==0)
        l=s;
        else if(s>0)
        {
        i=0;
        for(j=la-1;j>=0;j--)
        {
        c[i]=a[j];
        i++;
        }
        l=i;
        k=0;
        for(m=lb-1;m>=0;m--)
        {
        d[k]=b[m];
        k++;
        }
        }
        else if(s<0)
        {
        i=0;
        printf("-");
        for(j=lb-1;j>=0;j--)
        {
        c[i]=b[j];
        i++;
        }
        l=i;
        k=0;
        for(m=la-1;m>=0;m--)
        {
        d[k]=a[m];
        k++;
        }
        }
        }
        if(la>lb)
        e=lb;
        else
        e=la;
        if(l==0)
        printf("0\n");
        else
        {
            as=0;
            for(u=0;u<l;u++)
            {
                if(l>u)
                p=c[u]-48;
                else
                p=0;
                if(e>u)
                q=d[u]-48;
                else
                q=0;
                h=p-(q+as);
                if(h<0)
                {
                as=1;
                result[u]=10+h+48;
                }
                else
                {
                    result[u]=h+48;
                    as=0;
                }
            }
            for(y=u-1;y>=0;y--)
            {
            if(result[y]!=48)
            break;
            }
            for(t=y;t>=0;t--)
            printf("%c",result[t]);
            printf("\n");
        }
    }
    return 0;
}

No comments:

Post a Comment