Skip to content

Instantly share code, notes, and snippets.

@m1kc
Created December 14, 2013 06:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save m1kc/7956208 to your computer and use it in GitHub Desktop.
Save m1kc/7956208 to your computer and use it in GitHub Desktop.

Code written by a CS 101 student

public int fibonacci(int x) {
	if (x == 1) {
		return 1;
	} else if (x == 2) {
		return 1;
	} else {
		return fibonacci(x - 1) + fibonacci(x - 2);
	}
}

Code written at a hackaton

public int getFibonaciNumber(int n) {
	switch(n) {
		case 1: return 1;
		case 2: return 1;
		case 3: return 2;
		case 4: return 3;
		case 5: return 5;
		case 6: return 8;
		case 7: return 13;
		default:
			// good enough for the demo, lol
			return -1;
	}
}

Code written at a startup

// TODO: add Javadoc comments
/**
 * getFibonacciNumber
 */
// TODO: Should we move this to a different file?
public int getFibonacciNumber(int n) {
	// TODO: Stack may overflow with recursive implementation, switch over to
	// iteration approach at some point?
	if (n < 0) {
		// TODO: This should probably throw an exception. Or maybe just print
		// a log message?
		return -1;
	} else if (n == 0) {
		// TODO: Generalize the initial conditions?
		return 0;
	} else if (n == 1) {
		return 1;
	} else {
		// TODO: Spend some time with my family and kids, I've been at work for
		// over 48 hours straight.
		return getFibonacciNumber(n - 1) + getFibonacciNumber(n - 2);
	}
}

Code written at a large company

/**
 * getFibonacciNumber is a method that, given some index n, returns the nth
 * Fibonacci number.
 * @param n The index of the Fibonacci number you wish to retrieve.
 * @return The nth Fibonacci number.
 */
public CustomInteger64 getFibonacciNumber(CustomInteger64 n) {
	FibonacciDataViewBuilder builder =
		FibonacciDataViewBuilderFactory.createFibonacciDataViewBuilder(
		new FibonacciDataViewBuilderParams(n, null, null, 0, null));
	if (builder == FibonacciDataViewBuilderConstants.ERROR_STATE) {
		throw new FibonacciDataViewBuilderFactoryException();
	}
	FibonacciDataView dataView = builder.generateFibonacciDataView(this);
	if (dataView == FibonacciDataViewConstants.ERROR_STATE) {
		throw new FibonacciDataViewGenerationException();
	}
	return dataView.accessNextFibonacciNumber(null, null, null);
}

Code written by a math Ph.D.

public int getFibonacciNumber(int n) {
	return (int) divide(subtract(exponentiate(phi(), n), exponentiate(psi(), n)),
		subtract(phi(), psi()));
}

public double exponentiate(double a, double b) {
	if (equal(b, zero)) {
		return one();
	} else {
		return multiply(a, exponentiate(a, subtract(b, one())));
	}
}

public double phi() {
	return divide(add(one(), sqrt(add(one(), one(), one(), one()))),
		add(one(), one()));
}

public double psi() {
	return subtract(one(), phi());
}

Code written by your cat

public static final int UNITE = 1;
public static final int UNITED = 2;

// meowwwww meow
public int meow(int KITTENS_OF_THE_WORLD) {
	// MEOW
	if (KITTENS_OF_THE_WORLD < UNITED) {
		return KITTENS_OF_THE_WORLD;
	} else {
		// meeoowwwwwwwwww
		// meoooowwwwwwwwwwwwwwwwwwwwww
		return meow(KITTENS_OF_THE_WORLD - UNITE)
			+ meow(KITTENS_OF_THE_WORLD - UNITED);
	}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment