Показать сообщение отдельно
  #1 (permalink)  
Старый 21.08.2013, 17:44
Новичок на форуме
Отправить личное сообщение для croatoan Посмотреть профиль Найти все сообщения от croatoan
 
Регистрация: 21.08.2013
Сообщений: 2

вычитание длинных чисел
Добрый день!



Задача: найти разность двух неотрицательных чисел

/* функция находит разность
* arr1 - большее число
* arr1 - меньшее число
* len - длина большего числа
*/

Ребят, кто подскажет что у меня не так:
function subtraction(arr1,arr2,len) {
    var arrResult = [];
    arr1 = arr1.reverse();
    arr2 = arr2.reverse();
    
    for(var i=0; i < len; ++i) { // инициализируем 0 результативный массив
        arrResult[i] = 0;
    }
    for(var i=0; i<len; ++i) {
        if(i < len-1) {
            arr1[i + 1] -= 1;
            arrResult[i] = 10 + arr1[i];
        } else {
            arrResult[i] += arr1[i];
        }
        if(!isNaN(arr2[i])) {
            arrResult[i] -= arr2[i]; // вычитаем
        }

        if(arrResult[i] / 10 > 0) {
            arrResult[i] %= 10;
            if(i < len - 1) {
                arrResult[i + 1] += 1;
            }
        }
    }
    return arrResult;
}


Заранее, спасибо)
Ответить с цитированием