Hallo,
ich möchte ein Programm schreiben, welches mir die größtmögliche Fakultät < n ausrechnet.
in anderen worten:
f(n) = max{k >= 1 | k! < n}
Bisher habe ich die Fakultät iterativ mit einer for-Schleife korrekt berechnet:
Wie kann ich das denn umschreiben, sodass die Fakultätsberechnung abbricht, sobald das Programm merkt, dass es größer wird als n und optimalerweise das letzte k! ausgibt, welches kleiner als n ist?
Bei mir wirft er ja alle k! in die Runde, aber ich möchte lediglich das größte haben.
Danke für eure Hilfe.
ich möchte ein Programm schreiben, welches mir die größtmögliche Fakultät < n ausrechnet.
in anderen worten:
f(n) = max{k >= 1 | k! < n}
Bisher habe ich die Fakultät iterativ mit einer for-Schleife korrekt berechnet:
Java:
public class faktest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long n = 10;
long faku = 1;
for(int i = 1; i<=n; i++)
{
faku *= i;
if(faku<n)
System.out.println(faku);
}
}
}
Wie kann ich das denn umschreiben, sodass die Fakultätsberechnung abbricht, sobald das Programm merkt, dass es größer wird als n und optimalerweise das letzte k! ausgibt, welches kleiner als n ist?
Bei mir wirft er ja alle k! in die Runde, aber ich möchte lediglich das größte haben.
Danke für eure Hilfe.