0 Daumen
116 Aufrufe

Frage:

Schreiben Sie ein Programm, welches die Zahlen der Fibonacci-Folge bis zu einem bestimmten Grenzwert ausgibt. Der Grenzwert soll hierbei als Kommandozeilenargument eingelesen werden. Eine Zahl der Fibonacci-Folge lässt sich mit der Formel fn= fn-1+ fn-2 errechnen. Gestartet wird mit fo = 0 undf= 1. Implementieren Sie den Algorithmus und geben Sie die Fibonacci-Zahlen bis zu dem Grenzwert auf der Kommandozeile aus.

Für die Zahlen kleiner 100:

1

1

2

3

5

8

13

21

34

55

89


Code:

Können Sie mir bitte bei dieser Frage helfen?

von

1 Antwort

0 Daumen

Ich habe versucht, alle Schritte zu kommentieren, die unklar sein könnten, je nach Kenntnissstand...


//Dieses Programm berechnet die Zahlen der Fibonacci-Folge bis zu einem eingegebenen Grenzwert
import java.util.*;  //Java Bibliothek importieren, um auf Funktionen zugreifen zu können
public class Fibonacci{


public static long fibonacci(int n) {
if(n == 0) {                        //Die nullte Fibonacci Zahl ist null
  return 0;
}
else if (n == 1) {                //Die erste Fibonacci Zahl ist eins
  return 1;
}
else {
    return fibonacci(n-1) + fibonacci(n-2); //Berechnung aller weiteren Folgeglieder
}
}



public static void main ( String [] args){
Locale.setDefault (Locale.US);    //Auf das amerikanische Eingabesystem stellen
     
      Scanner mm = new Scanner(System.in); //Eingabe des Grenzwertes
System.out.println("Geben Sie den Grenzwert ein, bis zu dem die Fibonaccifolgenglieder berechnet werden sollen:");
int gw = mm.nextInt();  //Grenzwert als gw speichern

int n = 0;       
long fib=0;

while( fib < gw){          //Solange die Fibonacci-Zahl kleiner dem Grenzwert ist
fib = fibonacci(n);    //Fibonacci-Zahl berechnen und als fib speichern

if (fib <= gw){              //Überprüfen, ob neu errechnete Fibonacci-Zahl noch unter dem Grenzwert liegt
System.out.println(fib);  //Liegt sie unter dem Grenzwert, soll sie ausgegeben werden
}
n++;
}
}
}

von

Vielen Dank. Ich habe auch die Aufgabe geschafft.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community