Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Mir geht es einfach nicht in den Kopf, wieso folgende Methode nicht funktionieren sollte:
Java:
public class Test {
public static void main(String[] args) {
System.out.println(fak(z));
}
public static void fak(int n) {
int n = Integer.parseInt(args[0]);
int i;
int d;
int z;
z=1;
for (i=1;i<=n;i++){
if (i<n) {
d=z*i;
z=d;}
}
}
}
Wieso funktioniert das nicht? fak() berechnet einfach die Fakultät und die Main-Methode sollte diese eifnach wiedergeben...
Habe einfach folgenden Code umgeschrieben, welcher auch funktioniert:
Java:
public class Fakultaet {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int i;
int d;
int z;
z=1;
for (i=1;i<=n;i++){
if (i<n) {
d=z*i;
z=d;}
}
System.out.println(z);
}
}
die nächste Fragen dann bitte auch hier rein stellen, warte doch einfach ab ob vielleicht Antworten kommen,
nach 'Problem mit Methoden', 'Problem mit Aufruf von Methode' und nun 'Problem mit einfachen Methoden'
wäre ein weiterer Methoden-Titel innerhalb weniger Stunden/ Tagen langsam zuviel des schlechten
… und args[0] ist nur in der Methode main bekannt, nicht in fak.
Du wolltest vermutlich so etwas:
Java:
public class Test {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
System.out.println(fak(n));
}
public static int fak(int n) {
int i;
int d;
int z=1;
…
/* Ergebnis zurückgeben! (z?) */
return z;
}
Ziel ist es eigentlich folgenden Code als Methode (z.B public static int fak(int n) zu schreiben und diesen dann in der Main-Methode aufzurufen.
Java:
public class Fakultaet {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
int i;
int d;
int z;
z=1;
for (i=1;i<=n;i++){
if (i<n) {
d=z*i;
z=d;}
}
System.out.println(z);
}
}
Hoffe es kann mir jemand weiterhelfen, verzweifle langsam...
Vielen Dank!
public class Test {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
System.out.println(fak(n));
}
public static int fak(int n) {
int i;
int d;
int z=1;
…
/* Ergebnis zurückgeben! (z?) */
return z;
}
public class A2_1 {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
System.out.println(fak(n));
}
public static int fak(int n) {
int i;
int d;
int z=1;
for (i=1;i<=n;i++){
if (i<n) {
d=z*i;
z=d;}
return z;
}
}
}
Fehlermeldung:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
This method must return a result of type int
at A2_1.fak(A2_1.java:7)
at A2_1.main(A2_1.java:4)
Wo liegt das problem?
evtl, hier public static int fak(int n) ?
für alle n>1 liefert fak keinen Rückgabewert, da in diesem Fall die for-Schleife gar nicht durchlaufen wird. Ansonsten solltest Du Dir die Schritte mal auf Papier aufzeichenen, denn Dein Code hat mit der Lösung relativ wenig zu tun ;-) (Gehe davon aus, dass es um die rekursive Berechnung einer Fakultät geht)
public class A2_1 {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
System.out.println(fak(n));
}
public static int fak(int n) {
int i;
int d;
int z=1;
for (i=1;i<=n;i++){
d=z*i;
z=d;
}
return z;}
}
public class A2_1 {
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
System.out.println(fak(n));
}
public static long fak(int n) {
int i;
int d;
int z=1;
for (i=1;i<=n;i++){
d=z*i;
z=d;
}
return z;}
}
bei 20 bekommen ich auch so einen negativen Wert...
Wo liegt hier das Problem?
public class Fakultät {
public static long fakult(long x) {
long fakult=1;
for (int i=1;i<=x;i++) {
fakult*=i;
}
return fakult;
}
public static void main(String[] args) {
long x = IOTools.readInteger("Geben Sie eine positive ganze Zahl ein! ");
double Fakultät= fakult(x);
System.out.print("= "+fakult(x));
}
}