Exemple #1
0
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));
}
Exemple #2
0
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);
}