J'essaye d'ajouter l'extension aux nombres de Fibonacci pour prendre en compte des index négatifs. L'extension est Fib (-n) = (-n)^(n + 1) * Fib (n) J'ai essayé d'implémenter ceci en C++ mais je suis confronté à un problème et je ne suis pas sûr de savoir comment contourner.Fibonacci extension dans C++ segfaulting
#include <iostream>
#include <math.h>
int fib(int n) {
if (n < 0){
return (pow(-1,-n+1) * fib(-n));
}else if (n == 0){
return 1;
}else{
return fib(n-1) + fib(n-2);
}
}
int main(void){
std::cout << "fib("<< -2<<") = " << fib(-2) << std::endl;
return 0;
}
Cela me donne un segfault, une idée de pourquoi c'est?
EDIT: J'ai trouvé quel est le problème. J'ai oublié un cas de base et cela a provoqué une récursion infinie, qui à son tour a provoqué une erreur de segmentation.
utilisation '' tête dans '' C++ –
phadej
@phadej, je devrais faire cela pour vous. – shuttle87