Помогите написать код javascript - Вопросы по Java

Вопрос Помогите написать код javascript

Регистрация
18 Апр 2013
Сообщения
100
Репутация
0
Спасибо
0
Монет
0
Помогите написать код JavaScript.



Реализуйте функцию calculateTotalMortgage, которая принимает четыре аргумента: percent, contribution, amount и countMonths.

Преобразуйте процентную ставку из диапазона от 0 до 100 в диапазон от 0 до 1 и из годовой ставки — в месячную.

Посчитайте тело кредита — сумму, которую нужно вернуть банку (сумма кредита минус первоначальный взнос).

Ежемесячная оплата рассчитывается по формуле: Платёж = S * (P + (P / (((1 + P)^n) - 1))), где: S — тело кредита, P — 1/12 процентной ставки (от 0 до 1), n — количество месяцев, ^ — возведение в степень. Для возведения в степень используйте оператор — ** или функцию Math.pow.

Посчитайте общую сумму, которую придётся заплатить клиенту.

Округлите результат до двух значений после запятой. Результат округления должен быть числом.

Верните результат из функции. Результатом функции должно быть значение числового типа.



Примеры результатов:

Ввод: процент (в диапазоне от 0 до 100), начальный взнос, сумма кредита, срок в месяцах



Ввод: 10, 0, 50000, 12. Вывод: 52749.53

Ввод: 10, 1000, 50000, 12. Вывод: 51694.54

Ввод: 10, 0, 20000, 24. Вывод: 22149.56

Ввод: 10, 1000, 20000, 24. Вывод: 21042.09

Ввод: 10, 20000, 20000, 24. Вывод: 0

Ввод: 10, 0, 10000, 36. Вывод: 11616.19

Ввод: 15, 0, 10000, 36. Вывод: 12479.52
 
Регистрация
22 Июн 2013
Сообщения
95
Репутация
0
Спасибо
1
Монет
0
ваще легко братан задание для маленьких детей

function calculateTotalMortgage(percent, contribution, amount, countMonths) {
// Преобразуем процентную ставку из диапазона от 0 до 100 в диапазон от 0 до 1 и из годовой ставки — в месячную
let monthlyRate = (percent / 100) / 12;

// Рассчитываем тело кредита
let principal = amount - contribution;

// Если тело кредита меньше или равно нулю, возвращаем 0
if (principal <= 0) {
return 0;
}

// Рассчитываем ежемесячный платеж по формуле
let monthlyPayment = principal * (monthlyRate + (monthlyRate / (Math.pow(1 + monthlyRate, countMonths) - 1)));

// Рассчитываем общую сумму, которую придется заплатить клиенту
let totalAmount = monthlyPayment * countMonths;

// Округляем результат до двух значений после запятой
return Math.round(totalAmount * 100) / 100;
}

// Примеры использования функции
console.log(calculateTotalMortgage(10, 0, 50000, 12)); // 52749.53
console.log(calculateTotalMortgage(10, 1000, 50000, 12)); // 51694.54
console.log(calculateTotalMortgage(10, 0, 20000, 24)); // 22149.56
console.log(calculateTotalMortgage(10, 1000, 20000, 24)); // 21042.09
console.log(calculateTotalMortgage(10, 20000, 20000, 24)); // 0
console.log(calculateTotalMortgage(10, 0, 10000, 36)); // 11616.19
console.log(calculateTotalMortgage(15, 0, 10000, 36)); // 12479.52
 
Регистрация
12 Дек 2013
Сообщения
73
Репутация
8
Спасибо
0
Монет
0
const calculateTotalMortgage = (p, c, a, n) => {
const r = p / 100 / 12;
const s = Math.max(0, a - c);
return s ? +(s * (r + r / (Math.pow(1 + r, n) - 1)) * n).toFixed(2) : 0;
};
 
Регистрация
11 Ноя 2012
Сообщения
100
Репутация
0
Спасибо
0
Монет
0
function calculateTotalMortgage(percent, contribution, amount, countMonths) {
// Преобразуем процентную ставку из диапазона 0-100 в 0-1 и вычисляем месячную ставку
const monthlyRate = percent / 100 / 12;

// Вычисляем тело кредита
const loanBody = amount - contribution;

// Если тело кредита меньше или равно 0, возвращаем 0 (ничего платить не нужно)
if (loanBody <= 0) {
return 0;
}

// Рассчитываем ежемесячный платеж по формуле
const monthlyPayment = loanBody * (monthlyRate + (monthlyRate / (Math.pow(1 + monthlyRate, countMonths) - 1)));

// Общая сумма выплат
const totalAmount = monthlyPayment * countMonths;

// Округляем результат до двух знаков после запятой и возвращаем
return +totalAmount.toFixed(2);
}

// Примеры использования:
console.log(calculateTotalMortgage(10, 0, 50000, 12)); // 52749.53
console.log(calculateTotalMortgage(10, 1000, 50000, 12)); // 51694.54
console.log(calculateTotalMortgage(10, 0, 20000, 24)); // 22149.56
console.log(calculateTotalMortgage(10, 1000, 20000, 24)); // 21042.09
console.log(calculateTotalMortgage(10, 20000, 20000, 24)); // 0
console.log(calculateTotalMortgage(10, 0, 10000, 36)); // 11616.19
console.log(calculateTotalMortgage(15, 0, 10000, 36)); // 12479.52
 
Сверху Снизу