3v4l.org

run code in 300+ PHP versions simultaneously
<?php // $A = 1110; // $B = 370; // $C = 6171.6; // $H = 71.1; // $I = 556/$G; // Muss "4,21212121212121" ausgeben // $K = get_factor_K($I); // I wird benötigt. Gibt in diesem Beispiel "0,9942" aus // $L = get_factor_L($I); // I wird benötigt. Gibt in diesem Beispiel "0,998670248976177" aus // $G = $H/(545.223880597015/1000*$L*$K); // Aufrundung ohne Komma, muss "132" ausgeben // $J = $G*$B/1000*$A/100*1; // Muss "542,124" ausgeben // $D = ($C-$J); // Muss "5629,476" ausgeben // $E = ($I-$B/1000)*$A/100; // Muss "42,6475454545455" ausgeben // $F = $I*$A/100; // Muss "46,7545454545455" ausgeben function get_factor_k($i) { // Replace with correct code #return $i; return 0.9942; } function get_factor_l($i) { // Replace with correct code #return $i; return 0.998670248976177; } $a = 1110; $b = 370; $c = 6171.6; $h = 71.1; $i = 0.001; // undef $k = 0; // undef $l = 0; // undef $step = 0.001; // Auflösung für $i $i_max = 100; // um keine Endlosschleife zu produzieren $epsilon = 0.001; // Fehlertoleranz $found = false; do { $k = get_factor_k($i); $l = get_factor_l($i); $tmp = (556 / ($h / (545.223880597015 / 1000 * $k * $l))); $found = (abs($i - $tmp) <= $epsilon); if (!$found) { $i += $step; } if ($i > $i_max) { throw new Exception('Unable to calculate $i'); } } while (!$found); $g = ceil($h / (545.223880597015 / 1000 * $l * $k)); #$i = 556 / $g; // ??? $i haben wir schon $j = $g * $b / 1000 * $a / 100 * 1; $e = ($i - $b / 1000) * $a / 100; $f = $i * $a / 100; $d = $c - $j; foreach (range('a', 'l') as $var) { echo $var . ' = '; var_dump($$var); }

preferences:
31.5 ms | 402 KiB | 5 Q