Python :: Aufgabe #272 :: Lösung #2

2 Lösungen Lösungen öffentlich
#272

Ein nicht-rekursiver Algorithmus!

Anfänger - Python von Labi1995 - 19.04.2020 um 20:52 Uhr
Was leistet folgender rekursiver Algorithmus für natürliche Zahlen n mit n>0?

int DoSomething(int n)
{
if (n == 1)
return n - 1;
else
{
if ((n / 2) * 2 == n)
{
return 1 + DoSomething(n - 1);
}
else
{
return DoSomething(n - 1);
}
}
}


Geben Sie einen nicht-rekursiven Algorithmus an, der dasselbe leistet.
#2
vote_ok
von Kryptonos (180 Punkte) - 06.11.2020 um 18:19 Uhr
Quellcode ausblenden Python-Code
def doSomething(n: int):
    if n != int:
        print('N muss eine ganze Zahl sein!')
    elif n >= 1:
        return n - 1
    else:
        print('Die Zahl muss größer gleich Eins sein!')

#Der "Algorithmus" rechnet n - 1, er gibt also immer die zu n nächstkleinere ganze Zahl zurück. Theoretisch würde der Code unter Python auch für negative bzw. float Zahlen  funktionieren, allerdings würde er dann anders funktionieren als das rekursive Beispiel.

Kommentare:

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

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