Program sprawdzający czy dana liczba należy do ciągu Fibonacciego - prośba o sprawdzenie kodu

0

Cześć,
Programuję od tygodnia, więc z góry proszę, nie bijcie, jeśli mój problem okaże się idiotyczny :D Piszę program sprawdzający czy dana liczba należy do ciągu Fibonacciego. Wydaje mi się, że jest ok, ale mógłby ktoś doświadczony rzucić na to jeszcze okiem? Nie chcę przy dalszej nauce brnąć w jakieś ewentualne błędy :)

#include <iostream>
#include <math.h>

using namespace std;

int liczba, a=1;

int main()
{
    cout<<"Oto program sprawdzajacy, czy podana przez Ciebie liczba nalezy do ciagu Fibonacciego"<<endl;
    cout << "Podaj liczbe" << endl;
    cin>>liczba;

    while (liczba!=a)
        {a=round(1.6180339*a);
        if (a>liczba) break;}
    if (liczba==a) cout<<"Ta liczba nalezy do ciagu Fibonacciego"<<endl;
    else cout<<"Ta liczba nie nalezy do ciagu Fibonacciego"<<endl;
    return 0;
}
6

Hmmm ten twój algorytm jakiś dziwny, skąd go wziąłeś? tu masz algorytm dla ciagu fibonacciego:
http://www.algorytm.edu.pl/algorytmy-maturalne/ciag-fibonacciego.html

0

@szarotka to zadanie z uczelni, w algorytmie na wyrazy ciągu Fibonacciego mieliśmy użyć tylko 1 zmiennej. Działa wykorzystując stosunek kolejnych wyrazów tego ciągu, czyli złoty podział.

0

@szarotka ok, a teraz? :)

#include <iostream>
#include <math.h>

using namespace std;

int liczba, a=1, b=1;

int main()
{
    cout<<"Oto program sprawdzajacy, czy podana przez Ciebie liczba nalezy do ciagu Fibonacciego"<<endl;
    cout << "Podaj liczbe" << endl;
    cin>>liczba;

    while ((liczba!=b) && (liczba!=a))
        {a+=b;
        b+=a;
        if (b>liczba) break;}
    if((liczba==b) || (liczba==a)) cout<<"Ta liczba nalezy do ciagu Fibonacciego"<<endl;
    else cout<<"Ta liczba nie nalezy do ciagu Fibonacciego"<<endl;
    return 0;

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1