Javascript: во время цикла для решения проблемы экспонент Получение ошибки, когда мощность равна 0 - PullRequest
0 голосов
/ 22 марта 2019

Я написал код javascript для решения следующей проблемы >>>

Напишите функцию экспоненты, которая принимает два аргумента:

  • base (number)
  • power(число)

Экспонента должна вернуть результат поднятия базы силой.Предположим, что аргумент power всегда будет целым числом, большим или равным нулю.Не забывайте, что любое число, возведенное в 0-ю степень, равно 1!

function exponentiate (base, power) {

  if (power === 0){
    return result = 1
  }

  // while loop 
  let count = 0
  let result = 1;

  while (count < power){  

    result *= base
    count += 1
  }

  return result 
}


exponentiate(3, 0)

Но я получаю следующую ошибку: ReferenceError: результат не определен

Что не так с моимкод?

1 Ответ

1 голос
/ 22 марта 2019
  1. Вы получаете доступ к result до его определения. поэтому вы должны переместить их вверху функции
  2. Здесь вы должны возвращать значение напрямую вместо присваивания

    if (power === 0){ return result = 1 }

function exponentiate (base, power) {
  let count = 0
  let result = 1;
  if (power === 0){
    return 1
  }

  // while loop 
  while (count < power){  

    result *= base
    count += 1
  }
  return result 
}

console.log(exponentiate(3, 0))

Простейшим является использование ** оператор степени

const exp = (b,e)=>{
  return b**e
}

console.log(exp(3,0))
console.log(exp(3,1))
console.log(exp(2,10))
...