Hey
Ich hab folgende Aufgabe für die Uni:
Analysieren Sie im Trockentest den gegebenen Algorithmus. Geben Sie für diesen Algorithmus den mathematischen Zusammenhang an. Welchen Rückgabewert hat die Methode, wenn für zahl der Wert 4 bzw. 7 übergeben wird?
public long berechnen(int zahl)
{
long resultat = 1;
for (int i = 1; i <=zahl; i++) {
resultat = resultat * i;
}
return resultat;
}
}
Ich habe den Algorithmus mit einigen Zahlen ausprobiert:
1=1
2=2
3=6
4=24
5=120
6=720
7=5040
8=40320
Mir ist aufgefallen, dass die Werte exponentiell steigen und das Startwert/ Ergebnis immer den Wert von dem vorherigen Ergebnis besitzt. Reicht das als Antwort (Mir ist nicht ganz klar was ein Trockentest ist).
Außerdem habe ich versucht aufzuschreiben was der Algorithmus macht und komme dabei auf das Ergebnis, dass der Algorithmus immer 1 mal i rechnet bis die Abbruchbedingung erreicht ist. Das würde ja heißen der letzte Durchlauf ist immer 1 mal die eingeben Zahl was ja offensichtlich nicht stimmt. Ich bin dankbar für jede Hilfe!
solange i (1) kleiner gleich <= zahl (1), Schrittweite 1 ->
resultat = resultat * i (1)
resultat = resultat * i (2) xxx i ist größer als zahl -> Abbruch
= 1
solange i (1) kleiner gleich <= zahl (2), Schrittweite 1->
resultat = resultat * i (1)
resultat = resultat * i (2)
resultat = resultat * i (3) xxx i ist größer als zahl -> Abbruch
= 2
Es wäre ein Traum wenn mir jemand aus der Community helfen könnte. Vielen Dank schonmal und frohe Weihnachten.
Ich hab folgende Aufgabe für die Uni:
Analysieren Sie im Trockentest den gegebenen Algorithmus. Geben Sie für diesen Algorithmus den mathematischen Zusammenhang an. Welchen Rückgabewert hat die Methode, wenn für zahl der Wert 4 bzw. 7 übergeben wird?
public long berechnen(int zahl)
{
long resultat = 1;
for (int i = 1; i <=zahl; i++) {
resultat = resultat * i;
}
return resultat;
}
}
Ich habe den Algorithmus mit einigen Zahlen ausprobiert:
1=1
2=2
3=6
4=24
5=120
6=720
7=5040
8=40320
Mir ist aufgefallen, dass die Werte exponentiell steigen und das Startwert/ Ergebnis immer den Wert von dem vorherigen Ergebnis besitzt. Reicht das als Antwort (Mir ist nicht ganz klar was ein Trockentest ist).
Außerdem habe ich versucht aufzuschreiben was der Algorithmus macht und komme dabei auf das Ergebnis, dass der Algorithmus immer 1 mal i rechnet bis die Abbruchbedingung erreicht ist. Das würde ja heißen der letzte Durchlauf ist immer 1 mal die eingeben Zahl was ja offensichtlich nicht stimmt. Ich bin dankbar für jede Hilfe!
solange i (1) kleiner gleich <= zahl (1), Schrittweite 1 ->
resultat = resultat * i (1)
resultat = resultat * i (2) xxx i ist größer als zahl -> Abbruch
= 1
solange i (1) kleiner gleich <= zahl (2), Schrittweite 1->
resultat = resultat * i (1)
resultat = resultat * i (2)
resultat = resultat * i (3) xxx i ist größer als zahl -> Abbruch
= 2
Es wäre ein Traum wenn mir jemand aus der Community helfen könnte. Vielen Dank schonmal und frohe Weihnachten.