Ακολουθία fibonacci στη C++
Το θέμα είναι -πιστεύω- γνωστό: να υπολογιστούν οι όροι της ακολουθίας:
$$ a_n = a_{n-1} + a_{n-2}, a_0 = 1, a_1=1, n=2,3,4,\ldots $$
Εδώ δίνεται ένα πρόγραμμα που υπολογίζει Ν όρους της ακολουθίας, το Ν το δίνει ο χρήστης. Ωστόσο το πρόγραμμα υπολογίζει το πολύ 50 όρους, υπάρχει δηλαδή ένα όριο στο πλήθος των υπολογισμών.
#include <iostream> #include <stdio.h> #define NMAX 50 using namespace std; int main() { unsigned int i, N; unsigned int a[NMAX]; a[0] = 0; a[1] = 1; cout << "How many fibonacci numbers (at least 2): " ; cin >> N; if (N > 2) { printf("---------------------\n"); printf(" n a(n)\n"); printf("---------------------\n"); printf ("%6d %14d\n", i, a[i]); ++i; printf ("%6d %14d\n", i, a[i]); for (i=2; i < N; i++) { a[i] = a[i-1] + a[i-2]; printf ("%6u %14u\n", i, a[i]); if (i>=NMAX) break; } } else { cout << "Aaah : " << N << " is too small" << endl; } return 0; }
Μεταγλώτιση και δοκιμαστική εκτέλεση:
astavrak@apollonia:~$ g++ program.cpp astavrak@apollonia:~$ ./a.out How many fibonacci numbers (at least 2): 7 --------------------- n a(n) --------------------- 0 0 1 1 2 1 3 2 4 3 5 5 6 8
Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.
Εκπαιδευτικό υλικό από τον
Αθανάσιο Σταυρακούδη
σας παρέχετε κάτω από την άδεια
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.