Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Не работает цикл в php, в чем проблема?

Написал мини-программу, которая вычислит, через сколько чел человек увидит свой миллион на счету банка, если изначальный его вклад 10000р + 10% ежегодно. Но чего-то не работает, перепроверил код раз 10, в голову ни чего не лезет в чем причина, может кто подскажет, в чем проблема?
Спасибо!

$debit = 10000;
$payBank = 1.1;

$finalBalance = 1000000;
$userHours = 16;

$hours = 1;
$finalHours = 0;

while ($debit < $finalBalance) {
	$debit = ($debit + $payBank) * $hours;
	$finalHours = $finalBalance / $debit;
	$userHours = $userHours + $hours;

	if ($userHours < 100) {
		echo "Наш подопечный получит свой лям в возрасте $userHours лет.";
		else {
			echo "К сожалению, нащ подопечный умер раньше, чем увидел свой лям на счету. Если-бы он дотянул до этого заветного момента, то ему на данный момент было-бы $userHours лет.";
		}
	}

	$hours ++;
}
  • Вопрос задан
  • 625 просмотров
Решения вопроса 1
Akdmeh
@Akdmeh
PHP, Yii2, Music
Кстати, ведь существуют банки, в которых проценты увеличиваются каждый месяц ;-)
Вторая часть моего кода посвящена именно этому.
Вам нужно почитать учебники по основам программирования, так как есть стойкое ощущение, что вы только начали.
<?php

$debit = 10000;
$payBank = 1.1;

$finalBalance = 1000000;

$years = 16;

$need_years = 1;

while ($debit < $finalBalance) {
    $debit = $debit * $payBank;
	
    $years++;
}

if ($years < 100) {
    echo "Наш подопечный получит свой лям в возрасте $years лет.<br />";
} else {
    echo "К сожалению, нащ подопечный умер раньше, чем увидел свой лям на счету. Если-бы он дотянул до этого заветного момента, то ему на данный момент было-бы $years лет.<br />";
}

$debit=10000;
$payBank=1.1;

$years=16;
$month=0;

while($debit<$finalBalance){
	$debit=$debit + ($debit*$payBank/12);
	$month++;
}

$years=$years + floor($month/12) + $month%12;


if ($years < 100) {
    echo "А если проценты начисляются каждый месяц, то $years лет.";
} else {
    echo "А если бы с процентами каждый месяц, то $years лет.";
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
у вас минимум 2 ошибки в формулах:
$debit = ($debit + $payBank) * $hours;
и
$userHours = $userHours + $hours;
Ответ написан
Комментировать
@void_phoenix
$userHours = 16;
$hours = 1;

1 итерация
$userHours = $userHours + $hours; // 17
$hours ++; // 2

2 итерация
$userHours = $userHours + $hours; // 17 + 2 == 19
$hours ++; // 3

и т.д.
Вряд ли так задумывалось
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы