fork(1) download
  1. <?php // Айфон в кредит
  2.  
  3. /* Известные баги:
  4. B1) Если кредит равен 4000 - школьник выплатит не 6123 как сказал автор, а 6124.
  5. Возможно это связано с округлением, т.к. школьник должен банку 6123.60
  6. */
  7.  
  8. $sumCredit = 40000;
  9. $monPay = 5000;
  10. $commission = 1000;
  11. $percent = 0.03;
  12. echo "Школьник взял кредит на iFone, в сумме ${sumCredit} рублей\n";
  13.  
  14. // Расчеты
  15. for ($month = 0; $sumCredit > 0; $month++) {
  16. // 3% + 1к комиссии и -5к от школьника. Скобки для более легкого чтения
  17. $sumCredit += ($sumCredit * $percent) + $commission - $monPay;
  18. }
  19.  
  20. // Округляем и считаем итоговую сумму
  21. $sumCredit = round($sumCredit);
  22. $endSum = 5000 * $month; // Сумму можно считать в цикле, но в начале нужна переменная с нулем
  23.  
  24. // v1
  25. echo "\nv1\n";
  26. echo "Школьник погасил кредит через ${month} месяцев и выплатил ${endSum} рублей\n";
  27. echo "Банк должен школьнику ${sumCredit} рублей\n"; // Да, тут банк должен минус
  28.  
  29.  
  30. // v2 - фикс долга банка
  31. // Можно было через for, в котором сделать проверки if sumCredit < 5000 и т.д.
  32. $endSum += $sumCredit; // Можно сделать if sumCredit < 0
  33. echo "\nv2\n";
  34. echo "Школьник погасил кредит через ${month} месяцев и выплатил ${endSum} рублей";
  35.  
  36. ?>
Success #stdin #stdout 0.04s 23564KB
stdin
Standard input is empty
stdout
Школьник взял кредит на iFone, в сумме 40000 рублей

v1
Школьник погасил кредит через 13 месяцев и выплатил 65000 рублей
Банк должен школьнику -3730 рублей

v2
Школьник погасил кредит через 13 месяцев и выплатил 61270 рублей