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

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
#2
vote_ok
von syneex (2670 Punkte) - 29.08.2018 um 13:30 Uhr
Quellcode ausblenden PHP-Code
<?php
//Lösung 1: Liefert nächstes Fakultätsergebnis nach eingegebenem
$number = 120;
$zahl = 1;
$bool = true;

echo "Lösung 1:<br><br>";

while($bool)
{
	if(faku($zahl) == $number)
	{
		$bool = false;
		echo "Die gesuchte Zahl ist " . $zahl;
	}
	if(faku($zahl) != $number)
	{
		$zahl += 1;
		faku($zahl);
	}
	if(faku($zahl) > $number)
	{
		echo faku($zahl) . " (" . $zahl . "!) ist das nächste gültige Fakultätsergebnis nach " . $number;
		$bool = false;
	}
}

function faku($int)
{
	$erg;
	if($int == 1)
	{
		$erg = 1;
	}
	else
	{
		$erg = $int * faku($int-1);
	}
	return $erg;
}


//Lösung 2: Lösung mit Array, Bei ungültiger Eingabe muss neu eingegeben werden!

echo "<br><br><br>Lösung 2:<br><br>";

$array = array();

for($i = 1; $i <= 99; $i++)
{
	$array[$i] = faku($i);
}

if(in_array($number, $array))
{
	echo "Die gesuchte Zahl ist " . array_search($number, $array);
}
else
{
	echo "Bitte gültiges Fakultätsergebnis eingeben!";
}
?>

Kommentare:

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

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