a hoch n

T

the_dude

Gast
Hey Leute ,

Es geht um folgendes : Ich wollte ein Programm schreiben , dessen Rahmen schon gegeben war , dass rekursiv a^n berechnet ... Kann sein dass mein Programm noch nicht ganz stimmt aber darum geht es auch garnicht , es geht eher darum , dass ich noch nicht ganz verstehe was am Anfang da passiert :

Java:
import javax.swing.*;

class Exponent {
static public void main (String[] args){

	
if (args.length == 2) {
 System.out.println(args[0] + "^" + args[1] + " = " +
                  exponent(Integer.parseInt(args[0]),
                         Integer.parseInt(args[1])));
}
else {
System.out.println("Bitte mit java Exponent <a> <n> aufrufen");
}
}
static public int exponent (int a, int n){
int x = 1 ;


	if (n>0){ 
		
		while(n!=0){
			
			x*=a ;
			n-=1;
			
		}
			
	}if (n==0){return 1;}
	
    if (n<0){
	    while (n!=0){
		   x*=a;
		   n+=1;
	                }
  	
}
	return x ;

}

Also es MÜSSEN anscheinend 2 Zahlen eingebenen werden ansonsten wird nichts passieren . Darüber hinaus werden die eingegeben Zahlen in einem 2 stelligen Array namens "args" gespeichert ? Ich möchte aber dass die Zahlen vom Benutzer eingegeben werden können deshalb dachte ich an so etwas wie :

Java:
String s = JOptionPane.showinputDialog("Bitte a eingeben");

Wobei der Wert als Integer in args[0] abgespeichert werden soll ... iwie sehe ich auch garnicht dass das Array erstellt wurde sprich sowas wie "Integer[] args= new int[2]" oder so etwas ... wie kriege ich jetzt hin dass die eingegeben Zahlen in args[0] und args[1] gespeichert werden ?
 

Volvagia

Top Contributor
Eh so. Nur dass das Array natürlich immer die Länge der Parameter hat.
Von daher musst du die Variable mit einen neuen Array überschreiben, damit immer 2 Felder Platz ist.
Mit Integer#parseInt kannst du dann die Strings zu ints machen, mit dem Fangen einer NumberFormatException die Eingabe prüfen.

Tabulatortaste ? Wikipedia

Edit: Ich dachte, du wolltest es rekursiv machen. Nur da ist kein einziger rekursiver Aufruf drinnen. ???:L
 

Final_Striker

Top Contributor
In dem args-Array stehen die Parameter, die das Java-Programm beim Start mitbekommt.

z.B:

Java:
java Exponent 2 3

in args[0] steht dann die 2 und in args[1] die 3.
 

Landei

Top Contributor
Rekursiv wäre z.B.

Java:
    public static long pow(int a, int n) {
        assert n >= 0;
        if (n == 0) return 1;
        long r = pow (a, n / 2);
        return r * r * (n % 2 == 0 ? 1 : a);
    }
 

Ähnliche Java Themen

Neue Themen


Oben