Thursday, 11 February 2016

UVa 713 - Adding Reversed Numbers

#include<bits/stdc++.h>
using namespace std;
int main()
{
    char num1[400],num2[400],res[400];
    int test,i,j,k,l1,l2,temp,a[400],b[400],c[400],x,y,z,pos,pos1,d[400];
    cin>>test;
    for(k=1;k<=test;k++)
    {
        x=y=399;
        temp=0;
        z=0;
        for(i=0;i<400;i++)
        {
            a[i]=b[i]=c[i]=0;
        }
        scanf("%s %s",num1,num2);
        l1=strlen(num1);
        l2=strlen(num2);
        for(i=0;i<l1;i++)
        {
            a[x--]=num1[i]-48;
        }
        for(i=0;i<l2;i++)
        {
            b[y--]=num2[i]-48;
        }
        for(i=399;i>=0;i--)
        {
            temp=temp+a[i]+b[i];
            c[i]=temp%10;
            temp=temp/10;
        }
        for(i=0;i<400;i++)
        {
            if(c[i]!=0)
            {
                pos=i;
                break;
            }
        }
        for(i=399;i>=pos;i--)
        {
            d[z++]=c[i];
        }
        for(i=0;i<z;i++)
        {
            if(d[i]!=0)
            {
                pos1=i;
                break;
            }
        }
        for(i=pos1;i<z;i++)
        {
            cout<<d[i];
        }
        cout<<endl;
    }
    return 0;
}

No comments:

Post a Comment