C ++ программа для поиска ближайшего числа в последовательности Фибоначчи - PullRequest
0 голосов
/ 19 марта 2020

Я немного застрял. Мне нужно написать программу на C ++, чтобы найти закрывающее число Фибоначчи для входного числа. Я собрал воедино программу, которая сообщает число Фибоначчи в n-м месте, я включил его код. Далее идет задача поиска ближайшего числа к входу. Я заблудился с математикой. Я расчесываю inte rnet в поисках подсказок. Я понял, что мне, вероятно, нужно использовать двоичное дерево поиска / принятия решений, чтобы исключить неправильные числа. Я могу генерировать числа Фибоначчи, поэтому я так близко. Мне нужна точка в правильном направлении, чтобы заставить меня идти. Я почти уверен, что формула B inet так же важна, как золотое сечение. Вот код для моей оригинальной программы:

int fib(int n)

{
    if (n <= 1)
        return (n);
    return fib(n - 1) + fib(n - 2);
}

int main()
{
    cout << "Enter a number greater than -1 and see what the n'th place in the fibbonaci sequence equals.\n";
    cin >> n;
    fib(n);

    if (n >= 0)
        cout << "n'th Fibonacci number is " << fib(n) << "\n"; 
    else
        cout << "\nInvalid number.\n\n";
    return 0;
}

1 Ответ

0 голосов
/ 24 марта 2020

Итак, я нашел код, который вычислил для меня индекс. Я сделал небольшие корректировки для ввода.

#include <iostream> 
using namespace std;

int findIndex(int n) 
{
    if (n <= 1) 
        return n; 

    int a = 0, b = 1, c = 1; 
    int res = 1; 
    while (c < n) 
    { 
        c = a + b; 
        res++; 
        a = b; 
        b = c; 
    } 
    return res; 
} 

int main() 
{ 
    int fib_number;
    cout << "Please enter a single integer number to see the closest index in the Fibonacci sequence.\n";
    cin >> fib_number;
    int result = findIndex(fib_number); 
    cout << "The Fibonacci index is " << result << "."; 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...