Восьмая программа: «Деньги к деньгам»


#1

Добрый день. Подскажите пожалуйста, никак не могу разобраться с решением этой программы. Не проходит одна проверка, вот код который я написал:

var calculateDeposit = function (startcash, percent, period, isCapitalizetion) {
  if (isCapitalizetion) {
  for (var i=1; i <= period; i++) {
   startcash += (startcash*percent/100/12)*period;
  }
  return Math.round(startcash);
  }
  else {
  var sumcash = startcash + Math.round((startcash*percent/100/12)*period);
   return Math.round(sumcash);
  }
}

При такой реализации не проходит проверка: https://prnt.sc/k2pw3w

Может кто-то подскажет, что не так в моей функции, так как я упорно не понимаю почему результат 103361 не подходит. Хотя по подсчету с калькулятором, за 2 месяца должна быть такая сумма.


#2

Форматируйте свой код с помощью кнопки </> в редакторе сообщений, пожалуйста. Он отображается некорректно.


#3

Окееей, отформатировал. А что с кодом то?какие то варианты в чем ошибка, есть?


#4

Это неверная формула при расчете депозита с капитализацией. Вы не можете здесь умножать на period, ведь в каждом месяце сумма процентов другая.


#5

Вдруг кому нужно.

Summary
var calculateDeposit = function (deposit, percent, month, isCapitalise) {
  if (isCapitalise) {
    for (var i = 0; i < month; i++){
      deposit += deposit * (percent / 100 / 12);
    }
  } else {
    deposit += deposit * (percent / 100 / 12 * month)
  }
  return Math.round(deposit);
};

#6

var calculateDeposit = function (startDeposit, percent, term, KapitalPercent) {
var Itog = startDeposit;
if (KapitalPercent) {
var Itog = startDeposit;
for (var i = 1; i <= term; i++) {
Itog += Itog * (percent / 12 / 100)}
} else {
Itog += startDeposit * (percent / 12 * term /100);
}
return Math.round(Itog);
};

Думаю задать переменную для начала отсчета более верное решение, нежели менять исходное данное депозит и возвращать его, нет?


#7

ну да, только так переменные не называют! только английский язык, поэтому никаких Itog и Kapital. И с заглавной буквы в js начинаются только классы
И у вас строчка var Itog = startDeposit; повторяется два раза


#8

Как-то так, практически как и у всех…

Деньги к деньгам
var calculateDeposit = function (deposit, percent, period, isCapitalization) {
  var totalAmount = deposit;
  if (isCapitalization) {
    for (var i = 0; i < period; i++) {
      totalAmount += totalAmount * (percent / 100 / 12);
    }
  }else {
    totalAmount += totalAmount * (percent / 100 / 12 * period);
  }
  return Math.round(totalAmount);
}

#9

Беда с проверкой.
если в конце вызываю функцию с корректными аргументами - считает правильно, а при проверке - не находит математических функций.
Кто-то сталкивался с подобным?

скриншот

(upload://kG4OGpYmT5ygVATYmal01es8Re7.png)

Самое смешное, что этот же текст функции использованный в следующей задаче (“Вечный вопрос”) работает и принимается системой!

второй скрин