C++ :: Aufgabe #284
1 Lösung
Ein nicht-rekursiver Algorithmus!
Anfänger - C++
von Labi1995
- 19.04.2020 um 20:52 Uhr
Was leistet folgender rekursiver Algorithmus für natürliche Zahlen n mit n>0?
Geben Sie einen nicht-rekursiven Algorithmus an, der dasselbe leistet.
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.
Lösungen:
Es wird die Anzahl aller gerader Zahlen von 1 bis n zurückgegeben.
C-Code
int DoSomething(int n)
{
int zaehl = 0;
while(n>0)
{
if (n % 2 == 0)
{
zaehl++;
n--;
}
else
n--;
}
return (zaehl);
}