mercoledì 21 aprile 2010

C++ - Fibonacci

// Rocco Meli, 12.04.2010
// Sequenza di Fibonacci

#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <ctime>

unsigned long sequenzafib (unsigned long); // Prototipo di funzione

int main()
{
// Dichiarazione variabili locali
int scelta;
int numerivis1;
int numerovis2;
int for1;
unsigned int tempo;
clock_t inizio;
clock_t fine;
std::cout << "SEQUENZA DI FIBONACCI" << endl;
std::cout << "[1] Visualizza la sequenza fino all'ennesimo numero" << std::endl;
std::cout << "[2] Visulizza l'ennesimo numero" << std::endl;
std::cin >> scelta;
switch (scelta) 
{
case (1):
std::cout << "Quanti numeri vuoi visualizzare?" << std::endl;
std::cin >> numerivis1;
for (for1 = 0; for1 <= numerivis1; for1++) 
{
inizio = clock();
std::cout << "Fibonacci(" << for1 << ") = " << sequenzafib(for1) << endl;
fine = clock();
tempo = fine - inizio;
std::cout << tempo << " ticks" << std::endl;
}
break;
case (2):
std::cout << "Quale numero vuoi visualizzare?" << std::endl;
std::cin >> numerovis2;
std::cout << "Fibonacci(" << numerovis2 << ") = " << sequenzafib(numerovis2) << endl;
break;
default:
break;
}
return 0;
}



// Funzione Fibonacci
unsigned long sequenzafib (unsigned long numerofib)
{
if ((numerofib == 0) or (numerofib == 1))
{
return numerofib;
}
else
{
return sequenzafib(numerofib - 1) + sequenzafib(numerofib - 2);
}
}

Nessun commento: