24/24 Вечный вопрос


#1

Не проходит последнюю проверку
Вот код :

var initialAmount = 250000;
var depositDuration = 14;
var simplePercent = 7;
var complexPercent = 6.8;
var recommendedType;
var complex = initialAmount;
var simple = initialAmount;
var finalAmount = recommendedType;

for (var i = 0; i < depositDuration; i ++) {
  complex += Math.round(initialAmount * (complexPercent / 100 / 12));
}
console.log('Ваш депозит: ' + complex + ' с капитализацией');
simple += Math.round(initialAmount * (simplePercent / 100 / 12 * depositDuration));
console.log('Ваш депозит: ' + simple + ' без капитализации');
  
if (simple > complex) {
  recommendedType = 'simple';
  finalAmount = simple;
  console.log('Рекомендуемый вклад обычный: ' + finalAmount);
} else {
  recommendedType = 'complex';
  finalAmount = complex;
  console.log('Рекомендуемый вклад с капитулацией: ' + finalAmount);
}


#2

Есть одна ошибка, которую я сам совершил, но быстро нашел потом.

Расчет сложных процентов. У тебя вот так:

console.log('Ваш депозит: ' + complex + ' с капитализацией');
simple += Math.round(initialAmount * (simplePercent / 100 / 12 * depositDuration));

а нужно:

console.log('Ваш депозит: ' + complex + ' с капитализацией');
simple += Math.round(simple * (simplePercent / 100 / 12 * depositDuration));

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

У меня вот такое решение:

var amountSimple = initialAmount + initialAmount * depositDuration * simplePercent / 1200;
var amountComplex = initialAmount;
for (var i = 1; i <= depositDuration; i ++) {
  amountComplex += amountComplex * complexPercent / 1200;
  }
if (amountSimple > amountComplex) {
  var recommendedType = 'simple';
  var finalAmount = Math.round(amountSimple);
}
else {
  var recommendedType = 'complex';
  var finalAmount = Math.round(amountComplex);
}