#include <stdio.h>

int fib1(int n);
int fib2(int n);
int fib3(int n);

int main(void) {
	int n;
	
	scanf("%d",&n);
	printf("n = %d\n",n);
	
	printf("fib1(%d) = %d\n",n,fib1(n));
	printf("fib2(%d) = %d\n",n,fib2(n));
	printf("fib3(%d) = %d\n",n,fib3(n));
	
	
	return 0;
}

int fib1(int n){
	int a = 0,b = 1,c;
	int i;
	
	if(n == 0){
		return 0;
	}else if(n == 1){
		return 1;
	}
	
	for(i = 2;i <= n;i ++){
		c = a + b;
		a = b;
		b = c;
	}
	
	return b;
	
}

int fib2(int n){
	int f[n+1];
	int i;
	
	f[0] = 0;
	if(n == 0){
		return f[0];
	}
	
	f[1] = 1;
	for(i = 2;i <= n;i ++){
		f[i] = f[i-1] + f[i-2];
	}
	
	return f[n];
	
}

int fib3(int n){
	
	if(n == 0){
		return 0;
	}else if(n == 1){
		return 1;
	}else{
		return fib3(n-1) + fib3(n-2);
	}
}