fork download
  1. <?php
  2. header("Content-Type: text/plain; charset=utf-8");
  3.  
  4. /*
  5. W5.1. Школьник решил купить айфон и для этой цели взял кредит. Сумма кредита — 40000 р.,
  6. банк в начале каждого месяца (включая первый) начисляет 3% от остатка долга за пользование
  7. кредитом и 1000 р. комиссии (да, а ты думал, обойдешься процентами?). После этого, в
  8. конце каждого месяца, наш герой идет в банк и пытается выплатить долг, но он не может
  9. заплатить более 5000 р за раз (сэкономленных на школьных завтраках). Вопрос, когда он
  10. избавится от долга? Во сколько школьнику обошелся айфон?
  11. */
  12.  
  13. $creditBalance = 40000; /* Долг анона перед банком */
  14. $percent = 1.03; /* Банк начисляет 3% в месяц от суммы */
  15. $servicePayment = 1000; /* А также 1000 рублей в месяц комиссии за обслуживание счета */
  16. $monthlyPayment = 5000; /* Анон платит 5000 р в месяц, это все, что ему дает мама на завтраки */
  17. $paymentTotal = 0; /* Сколько всего отдал банку анон */
  18.  
  19. /* Посчитаем расходы 20 раз на 20 месяцев вперед */
  20. for ($month = 1; $month <= 60; $month ++) {
  21. $predCreditBalance=($creditBalance * $percent ) + $servicePayment;
  22. if ($predCreditBalance>5000){ //проверка больше ли долг школьника чем его месячный доход с завтраков
  23. $creditBalance = $predCreditBalance - $monthlyPayment;
  24. $paymentTotal = $paymentTotal + $monthlyPayment;
  25. echo "{$month} месяц спустя: долг = {$creditBalance} руб, выплачено всего {$paymentTotal} руб. \n";
  26. /* Если баланс отрицательный — хватит считать */
  27. if ($creditBalance < 0) {
  28. echo "С меня хватит!\n";
  29. break;
  30. }
  31. }else { //проверка больше ли долг школьника чем его месячный доход с завтраков
  32. echo "Долг меньше 5к, а именно $creditBalance \n";
  33. $creditBalance = $predCreditBalance;
  34. $paymentTotal = $paymentTotal + $creditBalance;
  35. $formatedPaymentTotal=round($paymentTotal, 2);
  36. echo "Долг уплачен за $month месяцев и с процентами и комиссией школьник заплатил $formatedPaymentTotal";
  37. break;
  38. }
  39. }
Success #stdin #stdout 0.02s 82880KB
stdin
Standard input is empty
stdout
1 месяц спустя: долг = 37200 руб, выплачено всего 5000 руб. 
2 месяц спустя: долг = 34316 руб, выплачено всего 10000 руб. 
3 месяц спустя: долг = 31345.48 руб, выплачено всего 15000 руб. 
4 месяц спустя: долг = 28285.8444 руб, выплачено всего 20000 руб. 
5 месяц спустя: долг = 25134.419732 руб, выплачено всего 25000 руб. 
6 месяц спустя: долг = 21888.45232396 руб, выплачено всего 30000 руб. 
7 месяц спустя: долг = 18545.105893679 руб, выплачено всего 35000 руб. 
8 месяц спустя: долг = 15101.459070489 руб, выплачено всего 40000 руб. 
9 месяц спустя: долг = 11554.502842604 руб, выплачено всего 45000 руб. 
10 месяц спустя: долг = 7901.137927882 руб, выплачено всего 50000 руб. 
11 месяц спустя: долг = 4138.1720657184 руб, выплачено всего 55000 руб. 
12 месяц спустя: долг = 262.31722768997 руб, выплачено всего 60000 руб. 
Долг меньше 5к, а именно 262.31722768997 
Долг уплачен за 13 месяцев и с процентами и комиссией школьник заплатил 61270.19