Алгоритм кодовых войн

Проблема

У мистера Скруджа есть сумма денег «P», которую он хочет инвестировать, и он хочет знать, сколько лет «Y» эта сумма должна храниться в банке, чтобы эта сумма денег составила «D».

Mr.Scrooge 는 투자 하고자 하는 금액 'p' 를 가지고 있고, 이 금액 이 'd' 에 이르기 위해, 몇 년 동안 싶어 를 를 해야 하는지 알고 알고 싶어 한다.

Сумма хранится в течение Y лет в банке, где проценты I выплачиваются ежегодно, а новая сумма ежегодно реинвестируется после уплаты налога T.

매년 이자 ‘I’가 지급되는 은행에서는, ‘Y’년 동안 세금 ‘T’를 지불한 후, 매년 재투자된다.

Ваша задача — завершить предоставленный метод и вернуть количество лет «Y» в целом, чтобы мистер Скрудж получил желаемую сумму.

Мистер Скрудж 원하는 금액을 얻을 수 있도록 ‘Y’년을 반환해라.

Решение 01

function calculateYears(principal, interest, tax, desired) {
  let years = 0;
  while (principal < desired) {
    principal += principal * interest * (1 - tax);
    years++;
  }
  return years;
}
calculateYears(1000, 0.05, 0.18, 1000);  // 0
calculateYears(1000, 0.05, 0.18, 1100);  // 3

Решение 02

function calculateYears(principal, interest, tax, desired) {
  for (var years = 0; principal < desired; years++) {
    principal += principal * interest * (1 - tax);
  }
  return years;
}
calculateYears(1000, 0.05, 0.18, 1000);  // 0
calculateYears(1000, 0.05, 0.18, 1100);  // 3