View Javadoc

1   package com.dvp.tutoriel.fibonacci;
2   
3   public class MaCalculette3 implements Calculette {
4   
5   	@Override
6   	public Long fibonacci(Integer n) {
7   
8   		// REGLE RG024.4
9   		if (n <= 0) {
10  			throw new IllegalArgumentException("On ne calcule que pour des nombres positifs");
11  		}
12  
13  		// REGLE RG024.1
14  		// REGLE RG024.2
15  		// REGLE RG024.3
16  		switch (n) {
17  		case 1:
18  		case 2:
19  			return 1L;
20  
21  		case 3:
22  			return 2L;
23  
24  		case 4:
25  			return 3L;
26  
27  		case 5:
28  			return 5L;
29  
30  		case 6:
31  			return 8L;
32  
33  		case 7:
34  			return 13L;
35  		case 8:
36  			return 21L;
37  
38  		default:
39  			return fibonacci(n - 1) + fibonacci(n - 2);
40  		}
41  
42  	}
43  
44  }