Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на Java Script. Олень взял в "Быстрозайм" $10 под 10% в день. Сколько он будет должен отдать через 100 дней?

Владимир Псай Просветленный (28618), закрыт 4 года назад
Проценты начисляются не от стартовой суммы, а например на второй день он должен отдать уже не от $100 а от $110/ Написать в цикле Do ...While
----------------------------------------
Моё решение похоже не верное. Здесь:
codepen.io/vvv7220/pen/JjjjxQg?editors=0011
Лучший ответ
Молот Шотландцев Высший разум (300965) 4 года назад
У меня получилось что при таких условиях оленю через 100 дней с десяти баксов придется возвращать космическую сумму. Но я не бухгалтер, может где-то и не прав в расчетах
s = 0;
n = 10;
count = 1;
do {
r = n/100*10;
console.log('День ' + count + ' процент ' + r.toFixed(2));
s += r;
console.log('заем ' + n.toFixed(2));
++count;
n = n + n*0.1;
}
while(count <= 100)
alert(s.toFixed(2))
>>>
Почти правильно...
В ответе выше получилось 137806.12
У меня 137796.12
Elepsis EclipseОракул (64086) 4 года назад
Правильно всё. В реальной жизни просто не существует таких процентов... поэтому и олень!))
Владимир Псай Просветленный (28618) )))
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (425086) 4 года назад
Очевидно, что никакой цикл тут не нужен, достаточно напечатать 10*1.1^100
Владимир ПсайПросветленный (28618) 4 года назад
что этот знак означает, которого у меня нет клавиатуре? И всё таки нужно через цикл. Такое задание от учителя. Вывести нужно не только в последний день, но и в кажый
Владимир Псай Просветленный (28618) а есть. вот этот ^
Elepsis Eclipse Оракул (64086) 4 года назад
Вы в коде написали

a = a + a * 0.1;

Очевидно, это то же, что и a = a * 1.1

На следующем круге снова будет a = a * 1.1

Если брать начальное значение a, то финальное будет

a = a * 1.1 * 1.1 * 1.1 * 1.1... и так 100 раз == a * 1.1 в степени 100.

Поэтому можно было без цикла, тупо

a = a * Math.pow( 1.1, 100 ); // это сразу будет ответом.
_____________________

В коде с циклом... ошибка в том, что total = ''; а должен быть равен нулю, чтобы к нему добавлять другое число, а не строку из числа...

Решение циклом:

function func_14(money = 10, days = 100, percent = 10) {
  let i = 0;
  do {
    money = money * (100 + percent) / 100;
    i++;
  }
  while (i < days);

  return money;
}

console.log(`Task_14: ${func_14()}`);
console.log( 10 * Math.pow(1.1, 100) ); // Контрольный

_______________

Функция может получить и другие аргументы - чтобы работала более универсально, а не была привязана к конкретным числам. Но если аргументов нет - по умолчанию они будут принимать заранее указанные значения.
Владимир ПсайПросветленный (28618) 4 года назад
money = money * (100 + 10) / 100; Это тоже самое что и money = money + money * 0.1;
Я правильно понимаю?
Elepsis Eclipse Оракул (64086) Да) = money * 1.1
Похожие вопросы