Последовательность Фибоначчи на Яве - PullRequest
0 голосов
/ 26 сентября 2018

У меня возникают некоторые проблемы при попытке воссоздать последовательность Фибоначчи в java-программу, я думаю, что это может иметь какое-то отношение к методу (FiboNacci), любая помощь будет принята с благодарностью!

import java.util.*;
public class LabWeek2 {
public static void main(String[] args) {
    System.out.println("----------------------");
    System.out.println("Welcome to Fibonaccis:");
    System.out.println("----------------------");
    //import the scanner
    Scanner in = new Scanner (System.in);
    /
    System.out.println("To start, please enter the 
     maximum number:");
    /////    
    int userChoice = in.nextInt();
    /// The conditions to the Fibonacci Sequence
    System.out.println("The sum of all even fibonaccis 
    before " + userChoice + " is: " );
    if (userChoice == 0){
        System.out.println(0);
    }
    if (userChoice == 1) {
        System.out.println(1);
    }
    if (userChoice > 1){
        FiboNacci(userChoice);
    }

}
public static void FiboNacci (int x){
    for (int i = 2; i < x; i++){
        int fn_1 = x - 1;
        int fn_2 = x - 2;
        x = fn_1 + fn_2;
    }
    System.out.println(x);
}
}

1 Ответ

0 голосов
/ 03 октября 2018

Спасибо всем, кто помог, в итоге я внес некоторые изменения в метод и заставил его работать.

public static void FiboNacci (int x) {
    //assign the variables
    int  t1 = 0, t2 = 1; int sum=0;
    //for loop to initalize and begin the sequence
    for (int i = 0; i < x; i++) {
        //creating the fibonacci
        int fib = t1 + t2;
        //conditions to find the sum of all of the evens specifically
        if (fib % 2 == 0){

            // creating the counter that is less than the user input,
            // which won't exceed the limit.
            if (fib < x){
                sum = sum + fib;
            }
        }
        t1 = t2;
        t2 = fib;
        // to ensure and set a limit on the fibonacci not running
        // ahead of the user input
        if (fib > x){
            break;
        }
    }
    System.out.println(sum);
}
...