Испытание:Вечный вопрос, программа работает, проверка не проходит, помогите)

var initialAmount = 50000;
var duration = 12;
var simplePercent = 7;
var complexPercent = 6;

var calculateDeposit = function (initialAmount, duration, simplePercent, complexPercent) {
var total_amount_simple = 0;
var total_amount_complex = 0;
var recommendedType;
var finalAmount;

total_amount_simple = ((simplePercent / 1200) * duration * initialAmount) + initialAmount;

total_amount_complex = initialAmount;
  for (var i = 1; i <= duration; i++) {
    total_amount_complex += ((complexPercent / 1200) * total_amount_complex);
}

if (total_amount_simple > total_amount_complex) {
recommendedType = ‘simple’;
finalAmount = total_amount_simple;
} else {
recommendedType = ‘complex’;
finalAmount = total_amount_complex;
}

console.log(total_amount_simple);
console.log(total_amount_complex);
console.log(recommendedType);
console.log(finalAmount);
return recommendedType, Math.round(finalAmount);
}
calculateDeposit(10000, 9, 7, 6.8);

Где ошибка?

Объявите переменные recommendedType и finalAmount перед функцией

Работает, спасибо!

Помогите, пожалуйста, разобраться, где ошибка?
var initialAmount = 50000;
var duration = 12;
var simplePercent = 7;
var complexPercent = 6;
var recommendedType=’’;
var finalAmount=0;

var calculateDeposit = function (deposit, percent, term, isCapitalized) {
percent = percent/12*0.01;

if (isCapitalized) {
for (var i=0; i<=term; i++){
deposit+ = deposit * percent;
}
}
else {
deposit+ = deposit * percent * term;
}
return Math.round(deposit);
}

var simpleDeposit = calculateDeposit (initialAmount, simplePercent, duration, false);
var complexDeposit = calculateDeposit (initialAmount, complexPercent, duration, true);

if (simpleDeposit < complexDeposit) {
recommendedType = ‘complex’;
finalAmount = complexDeposit;
console.log('Рекомендован ’ + recommendedType);
}
else {
recommendedType = ‘simple’;
finalAmount = simpleDeposit;
console.log('Рекомендован ’ + recommendedType);
}

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


Мой код

var initialAmount = 10000;
var depositDuration = 9;
var simplePercent = 7;
var complexPercent = 6.8;
var finalAmount = 0;
var recommendedType = “”;

var calculateDeposit = function (sum, percent, period, isCapitalized) {
var result = sum;
var simplePercent = percent/1200;

if (isCapitalized){
for (var i = 0; i < period; i++){
result += resultsimplePercent;
}
}
else{
result += result
simplePercent*period;
}
return Math.round(result);
};

var simpleResult = calculateDeposit(initialAmount, simplePercent, depositDuration, false);

var complexResult = calculateDeposit(initialAmount, complexPercent, depositDuration, true);

console.log(simpleResult);
console.log(complexResult);

if (simpleResult > complexResult){
finalAmount = simpleResult;
recommendedType = ‘simple’;
}
else {
finalAmount = complexResult;
recommendedType = ‘complex’;
}
console.log(finalAmount);
console.log(recommendedType);

Вы переменную simplePercent объявляете дважды - глобально и в функции. Измените название переменной в функции и проверка пройдет.

Ура! Спасибо, сработало

1 лайк