2017-03-15 7 views
1

Ich habe Schwierigkeiten mit meinen Hausaufgaben ... "Schreiben Sie ein Programm, das den Benutzer nach zwei Zahlen fragt: Lower und Upper. Ihr Programm sollte alle Fibonacci-Zahlen im Bereich von unten nach oben drucken und die Summe aller geraden Zahlen in der Fibonacci-Reihe. " Ich weiß nicht, wie man die Zahlen zwischen den beiden Eingaben bekommt. Jetzt gibt es nur Zahlen von Null bis ...? HierFibonacci Zahlen zwischen zwei Eingaben

ist das, was ich bisher:

public static void main(String[] args) 
{ 
    Scanner scr = new Scanner(System.in); 
    System.out.println ("Enter lower bound:"); 
    int lower = Integer.parseInt(scr.nextLine()); 
    System.out.println ("Enter upper bound:"); 
    int upper = Integer.parseInt(scr.nextLine()); 

    int fiboCounter = 1; 
    int first = 0; 
    int second = 1; 
    int fibo = 0; 
    int oddTotal = 1; 
    System.out.println("The fibonacci numbers between "); 
    while(fiboCounter < upper) 
    { 
     fibo= first + second; 
     first = second; 
     second = fibo; 
     if(fibo % 2 == 0) 
      oddTotal = oddTotal + fibo; 

     System.out.print(" "+ fibo+ " "); 
     fiboCounter++; 
    } 
    System.out.println(); 
    System.out.println("Total of even Fibos: "+ oddTotal); 
} 
+2

Zuerst berechnen Sie Ihre Fibonacci-Zahlen wie üblich, stoppen Sie, wenn Sie die obere Grenze überschreiten (mit Schleife). Innerhalb der Schleife, zusätzlich zur Berechnung der Fibonacci-Zahl, dann nur ausdrucken, wenn sie größer als niedriger ist. – DVT

Antwort

0

Sie können einfach überprüfen, ob die berechnete Zahl groß genug ist:

public static void main(String[] args) { 
    Scanner scr = new Scanner(System.in); 
    System.out.println ("Enter lower bound:"); 
    int lower = Integer.parseInt(scr.nextLine()); 
    System.out.println ("Enter upper bound:"); 
    int upper = Integer.parseInt(scr.nextLine()); 

    // This is how you can initialize multiple variables of the same type with the same value. 
    int fiboCounter, second, oddTotal = 1; 
    int first, fibo = 0; 

    System.out.println("The fibonacci numbers between "); 
    while(fiboCounter < upper) { 
     fibo= first + second; 
     first= second; 
     second=fibo; 
     if(fibo%2==0) oddTotal=oddTotal+fibo; 

     // Just check if its high enough 
     if(fibo > lower) { 
      System.out.print(" "+ fibo + " "); 
     } 
     fiboCounter++; 
    } 

    System.out.println("\nTotal of even Fibos: "+ oddTotal); 
    // The \n is just the same as System.out.println() 

    // You probably want to close the scanner afterwards 
    scanner.close(); 
} 

ich den Code fixiert ein wenig und machte es ein bisschen mehr lesbar.

Verwandte Themen