Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Programm ändern (http://www.informatikerboard.de/board/thread.php?threadid=2208)
Geschrieben von hi am 03.04.2015 um 13:47:
Programm ändern
public double exp(double x, int n)
{
double end = 1;
while(n>0)
{
end = end * x;
n--;
}
return end;
kann man auch
public double exp(double x, int n)
{
while(n>1)
{
x*= x;
n--;
}
return x;
Geschrieben von Mike90 am 03.04.2015 um 13:55:
Das Programm wird dir so nicht laufen, da x nicht initialisiert ist.
Geschrieben von Hi am 03.04.2015 um 13:57:
public double exp(double x, int n)
{
double end = 1;
while(n>0)
{
end = end * x;
n--;
}
return end;
in diesen Programm würde n nicht initialisiert, aber dennoch in while benutzt
Wieso läuft dann diese Programm?
Geschrieben von eulerscheZahl am 03.04.2015 um 13:58:
Nein, da überschreibst du ja die Basis, mit der multipliziert wird.
2^3 ist eben 2*2*2 und nicht (2*2)^4 = 2*2*4.
und x,n werden als Funktionsparameter übergeben, sind also initialisiert.
Wenn du wissen willst, wie es mit weniger Schleifendurchläufen und somit schneller geht:
link
Geschrieben von Hi am 03.04.2015 um 14:00:
Zitat: |
Original von eulerscheZahl
Nein, da überschreibst du ja die Basis, mit der multipliziert wird.
2^3 ist eben 2*2*2 und nicht (2*2)^4 = 2*2*4.
|
Das sehe ich ein, aber stimmt das?
Das Programm wird dir so nicht laufen, da x nicht initialisiert ist.
Geschrieben von Hi am 03.04.2015 um 14:02:
Zitat: |
Original von eulerscheZahl
und x,n werden als Funktionsparameter übergeben, sind also initialisiert.
|
public double exp(double x, int n){
double x= 3; -> das geht nicht!?
Geschrieben von eulerscheZahl am 03.04.2015 um 14:04:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
|
public class Main {
public static double exp(double x, int n) {
while (n > 1) {
x *= x;
n--;
}
return x;
}
public static void main(String[] args) {
System.out.println(exp(2, 3)); //hier werden x und n festgelegt.
//Ausgabe: 16.0
}
} |
|
Forensoftware: Burning Board, entwickelt von WoltLab GmbH