Деньги к деньгам


#21

Наверное смешно писать, что это гениально и, наверно, с практикой это приходит, но я пока не на этом уровне(( 3 дня пыталась…


#22

return возвращает значение не дожидаясь окончания цикла, на первой же итерации, time я не заметил чтобы менялся у вас в коде, так что думаю если бы не return. то цикл был бы вечным


#23

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


#24

Да, вы правы, я попробовала изменить на > -1 и он ушел в бесконечную петлю(


#25

Спасибо за поддержку) Буду развивать абстрактное мышление)


#26

Не понимаю, мне кажется, все немного усложняют. Как финансист, быстренько вспомнила (а можно было загуглить) формулу сложных процентов. Ну и я потом поискала как степень поставить и все такое… Вышло вот что:
var calculateDeposit = function (startingSum, percent, term, arePercentsCapitalized) {
var finishingSum;
var monthlyPercent = percent/100/12;
if (arePercentsCapitalized) {
finishingSum = Math.round(startingSum * Math.pow(1 + monthlyPercent, term));
} else {
finishingSum = Math.round(startingSum * (1 + monthlyPercent * term));
};
return finishingSum;
};

Если знаете, как еще можно зарефакторить - пишите!
И сорьки, у меня пока кодстайл в *опе


#27

Круто! после If с esle точка с запятой не нужна

Сделал более короткий ваш вариант, но не скажу что он лучше) просто короче

var calculateDeposit = function (startAmount, percent, term, isCapitalized) {
  var monthlyPercent = percent/100/12;
  var depositCapatalized = Math.round(startAmount * Math.pow(1 + monthlyPercent, term));
  var depositNoCapatalized = Math.round(startAmount * (1 + monthlyPercent * term));
  return isCapitalized ? depositCapatalized : depositNoCapatalized;
};

#28

Красивее ваш вариант, спасибо! Учту!