Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/** @file **/
#include <iostream>
#include <vector>
using namespace std;
/** Infrastructure minimale de test **/
#define CHECK(test) if (!(test)) cerr << "Test failed in file " << __FILE__ << " line " << __LINE__ << ": " #test << endl
/** Suite de Fibonacci
* @param n un entier strictement positif
* @return le n-ième terme de la suite de Fibonacci
**/
int fibonacci(int n) {
int u1 = 1;
int u2 = 1;
int tmp = 0;
if ( n == 1 or n == 2 ) {
return 1;
} else {
for ( int i = 3; i <= n; i++ ) {
tmp = u2;
u2 = u1 + u2;
u1 = tmp;
}
return u2;
}
}
/** Les tests de la fonction fibonacci **/
void fibonacciTest() {
CHECK( fibonacci(1) == 1 );
CHECK( fibonacci(2) == 1 );
CHECK( fibonacci(3) == 2 );
CHECK( fibonacci(4) == 3 );
CHECK( fibonacci(5) == 5 );
CHECK( fibonacci(6) == 8 );
}
fibonacciTest();
int n;
cout << "Entrez un entier : " << endl;
cin >> n;
cout << "Fibonacci(" << n << ") vaut " << fibonacci(n) << endl;