PHP :: Aufgabe #191 :: Lösung #4

4 Lösungen Lösungen öffentlich
#191

Rekursieve Fakultät von n

Fortgeschrittener - PHP von FHEM - 22.07.2018 um 19:09 Uhr
Erstelle ein programm das n! = 120 zum beispiel nach n auflöst.
Ansatz: 5! =5*4*3*2*1 also müsste n=120/5/4/3/2/1
#4
vote_ok
von joelbladt (80 Punkte) - 03.05.2019 um 23:36 Uhr
Quellcode ausblenden PHP-Code
<?php

(int)$i = 1;
(int)$number = 3;

function factorial(float $val) : float {
    return $val == 1 ? 1 : $val * factorial($val-1);
}

function calcMethod(float $val) : string {
    return $val == 1 ? 1 : $val . ' * ' . calcMethod($val-1);
}

while(true) {
    if (factorial($i) == $number) {
        echo 'The number you are looking for is ' . (string)$i . ' (' . (string)calcMethod($i) . ')';
        break;
    } else if (factorial($i) > $number) {
        echo 'The next valid factorial result after ' . (string)$number . ' is ' . (string)factorial($i) . ' (' . (string)calcMethod($i) . ')';
        break;
    } else {
        $i++;
        factorial($i);
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben