int fibonacci_n(int n) { if (n == 0) return 0; if (n == 1) return 1; else return (fibonacci_n (n-1) + fibonacci_n (n-2)); }
int main () { int n = 0; printf ("n=? :"); scanf ("%d", &n); printf ("nth fibonacci = %d.\n", fibonacci_n (n-1)); return 0; }
int main() { int a = fibonacci_n(2); printf("%d\n", a); return 0; }
unsigned int Triangulation::CountDimersInWedgeBoxes(){ Triangle *CurrentTri; unsigned int block_size = 1; unsigned int dimer_configs = 1; for(unsigned int i = 0; i < Simplex.size(); i++){ for(unsigned int j = 0; j < Simplex[i]->size(); j++){ CurrentTri = (*(Simplex[i]))[j]; if(CurrentTri->contains_dimer) continue; if(CurrentTri->orientation == CurrentTri->on_left_side->orientation && CurrentTri->on_left_side->contains_dimer == false){ if(CurrentTri != CurrentTri->on_left_side) block_size = block_size + 1; } else{ if(block_size > 1) dimer_configs = dimer_configs * fibonacci_n(block_size); block_size = 1; } } if(block_size > 1) dimer_configs = dimer_configs * fibonacci_n(block_size); block_size = 1; } return dimer_configs; }
unsigned int fibonacci_n(unsigned int n){ if(n == 0 || n == 1) return 1; //pow((1+sqrt(5))/2,n)-pow((1-sqrt(5))/2,n) return fibonacci_n(n-1) + fibonacci_n(n-2); }