Add BIG numbers

by Mohammed Ismail Ansari

JavaScript

function addBigNumbers(number1, number2) {
    var number1String = number1.toString(),
        number2String = number2.toString(),
        resultLength = number1String.length > number2String.length ?
                        number1String.length : 
                        number2String.length,
        carry = 0,
        result = "";
    
    while(number1String.length < resultLength)
        number1String = "0" + number1String;
    while(number2String.length < resultLength)
        number2String = "0" + number2String;
    
    for(i = resultLength - 1; i >= 0; i--) {
        result = getSum(carry + parseInt(number1String[i]), parseInt(number2String[i])) + result;
        carry = getCarry(carry + parseInt(number1String[i]), parseInt(number2String[i]));
    }
    
    function getSum(a, b) {
        var c = (a + b).toString();
        return (c.length > 1) ? c[1] : c;
    }
    function getCarry(a, b) {
        var c = (a + b).toString();
        return (c.length > 1) ? parseInt(c[0]) : 0;
    }
    
    return carry ? carry.toString() + result : result;
}

var number1 = 309,
    number2 = 800;
var bigresult = addBigNumbers(number1, number2);
alert(number1 + " + " + number2 + " = " + bigresult);