Uva 424-Integer Inquiry

/*
 My First Big Integer Code in C++.

 Verdict :: Accepted and Time: 0.000


*/

#include<bits/stdc++.h>

using namespace std;

int num[1009], numlen;

string x_y(string a, string b)
{
    int alen=a.size(), blen=b.size(),  sum, carry=0, i, j;

    numlen=0;

    i=alen-1;
    j=blen-1;

    for(; i>=0; i--)
    {
        sum = (a[i] - 48);

        if(j>=0)
        {
            sum+=(b[j] - 48);
            j--;
        }

        sum+=carry;

        if(sum > 10)
        {
            num[numlen]=sum%10;
            carry=sum/10;
        }

        else
        {
            num[numlen]=sum%10;
            carry=sum/10;
        }

        numlen++;
    }

    if(carry)
    {
        num[numlen++]=carry;
    }

    string s="";

    for(i=numlen-1; i>=0 ; i--)
    {
        //cout << num[i];
        s+=(num[i]+48);
        //cout << s << " ";
    }

    //cout << s << endl;

    return s;
}

string eql(string a, string b)
{
    int alen=a.size(), blen=b.size(),  sum, carry=0, i, j;

    numlen=0;

    i=alen-1;
    j=blen-1;

    for(; i>=0 and j>=0; i--,j--)
    {
        sum = (a[i]-48) + (b[j]-48);

        sum+=carry;

        if(sum > 10)
        {
            num[numlen]=sum%10;
            carry=sum/10;
        }

        else
        {
            num[numlen]=sum%10;
            carry=sum/10;
        }

        numlen++;
    }

    if(carry)
    {
        num[numlen++]=carry;
    }

    string s="";

    for(i=numlen-1; i>=0 ; i--)
    {
        s+=(num[i]+48);
        //cout << s << " ";
    }
    //cout << s << endl;

    return s;
}

int main()
{
    string x,y="0";
    //cin >> x;

    while( cin >> x and x != "0")
    {
        if(y.size() > x.size())
        {
            swap(x,y);
        }

        //cout << "x = " << x << endl;
        //cout << "y = " << y << endl;

        if(x.size() > y.size())
        {
            y = x_y(x,y);
        }

        else
        {
            y = eql(x,y);
        }
    }

    cout << y << endl;


    return 0;
}


 
/*************************** Java Code ****************************************/ 
 
import java.util.*;
import java.math.*;

class Main
{
 public static void main (String[] args)
 {
  Scanner in = new Scanner(System.in);
  BigInteger s=BigInteger.ZERO;
  
  while(in.hasNext())
  {
   BigInteger n=in.nextBigInteger();
   
   if(n.equals(BigInteger.valueOf(0)))
   {
    break;
   }
   
   s=s.add(n);
   //System.out.println(s);
  }
  
  System.out.println(s);
 }
}

Comments

Popular posts from this blog

Uva 10650 - Determinate Prime

SPOJ-CMG - Collecting Mango

LeetCode Palindrome Number