Возведение числа в степень и получение младшего разряда

398
27 января 2017, 08:11

Функция возвращает последнюю цифру числа, но если число слишком большое то infinity, как обработать число чтобы не возвращалось infinity?

var lastDigit = function(str1, str2){
    var result =  Math.pow(+str1,+str2).toString().split('');
    var elem = +result[result.length - 1];
    console.log(elem);
};
lastDigit("4", "1");           //       4 => 4
lastDigit("4", "2");           //      16 => 6
lastDigit("9", "7");           // 4782969 => 9
lastDigit("10","10000000000"); //=> 0
Answer 1

Вы возводите первый аргумент в степень, выраженную вторым аргументом, и находите младший десятичный разряд результата. Выражаясь математически: xy (mod 10)

Это классическая задача теории чисел, имеющая широкое применение и готовые решения, не требующие вычислять отдельно x^y.

Простейший алгоритм основан на том факте, что (a * b) (mod m) == (a * (b (mod m))) (mod m)

function lastDigit(base, exponent) { 
    var c = 1; 
    for (i = 1; i <= exponent; i++) c = (c * base) % 10; 
    return c; 
}

Существуют и другие более эффективные алгоритмы: Алгоритмы быстрого возведения в степень по модулю

READ ALSO
Вывод меток определенного цвета в Google Maps при выборе их в меню

Вывод меток определенного цвета в Google Maps при выборе их в меню

Пытаюсь сделать так, чтобы выбрав пункты в меню, выводились метки для этого пункта, а все остальные метки удалялись, а если убираю пункт, то чтобы...

329
Как изменить правильно .click на .on? [дубликат]

Как изменить правильно .click на .on? [дубликат]

На данный вопрос уже ответили:

388
не выходит вставить хтмл строку с скоупа в хтмл, чтобы теги срабатывали

не выходит вставить хтмл строку с скоупа в хтмл, чтобы теги срабатывали

Не вышло сформировать четко и внятно суть проблемы, наверное по этому я в гугле и не смог найти более менее похожий вопрос, к сожалениюЕсть...

292
Получение, отправка,редактирование таблиц с сервера jQuery [требует правки]

Получение, отправка,редактирование таблиц с сервера jQuery [требует правки]

Здравствуйте! Есть html-таблица с информацией ( она сервере )Мне нужно по клику получить данные этой таблицы в свой html, уметь добавить новые...

310