Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Hyronimaru

Rozwiązany: [c++] Ciąg Fibonacciego iteracyjnie

Polecane posty

Witam. Już na samym wstępie zaznaczam że jestem zupełnym nowicjuszem w programowaniu, ale w ramach praktyki i samodoskonalenia postanowiłem napisać program w C++ wyświetlający wskazaną liczbę w ciągu Fibonacciego. Jednak jakiejkolwiek wartości bym nie wpisał zawsze w konsoli otrzymuję 1. Proszę Was o wskazanie błędu (błędów) i ewentualnej ich korekcie.


#include <iostream>
using namespace std;
int fibonacci (int k) {
if(k=0) return 0;
if(k=1) return 1;
if(k=2) return 1;
else;
fibonacci(k-1)+fibonacci(k-2);
}
int main () {
int k;
cout << "ktory wyraz ciagu wygenerowac: " << endl;
cin >> k;
cout << fibonacci;
}

PS. Macie jakieś pomysły co do tworzenia prostych programów w celu opanowania języka? Uczę się z książki "Thinking in C++" Bruce'a Eckela, ale dopiero ją zacząłem. Z góry dzięki

Link do komentarza
Udostępnij na innych stronach


#include <iostream>
using namespace std;
int fibonacci (int k) {
if(k=0) return 0;
if(k=1) return 1;
if(k=2) return 1;
else; //tutaj kończysz else (średnik zaraz po słowie kluczowym)
fibonacci(k-1)+fibonacci(k-2); //tutaj wywołujesz tylko funkcję, nic nie zwracasz
}
int main () {
int k;
cout << "ktory wyraz ciagu wygenerowac: " << endl;
cin >> k;
cout << fibonacci;
}

Link do komentarza
Udostępnij na innych stronach

1. Zmienne porównuje się podwójnym znakiem równości (==)

Pojedyńczy znak równości (=) przypisuje wartość.

2. Funkcja fibbonacci przyjmuje argument (k), którego nie podajesz wywołując ją.

3. Funkcja fibbonacci nic nie zwraca, a powinna.

A tak swoją drogą: to jest fibbonacci metodą rekurencyjną, w iteracyjnej masz wszystko w pętli.

Link do komentarza
Udostępnij na innych stronach

Chcę napisać iteracyjnie, co prawda znalazlem w potężnym narzędziu jakim jest wyszukiwarka kod pisany rekurencyjnie, mianowicie


int fibonacci(int n) {
if(n == 0) return 0;
if(n == 1) return 1;

return fibonacci(n-1)+fibonacci(n-2);
}

Jednak, kolejny dowód mego lamerstwa, dostawałem błąd "undefined reference to 'WinMain@16'". Odpuściłem więc i zacząłem pisać od zera z zamiarem napiasnia iteracyjnie

Link do komentarza
Udostępnij na innych stronach

Gość
Temat jest zablokowany i nie można w nim pisać.


  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...