Skip to content

Instantly share code, notes, and snippets.

@weakish
Last active April 17, 2023 13:15
Show Gist options
  • Star 25 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save weakish/7428608 to your computer and use it in GitHub Desktop.
Save weakish/7428608 to your computer and use it in GitHub Desktop.
The Six Most Common Species Of #Code #java #fun

The Six Most Common Species Of Code

http://www.willa.me/2013/11/the-six-most-common-species-of-code.html

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 Hackathon

public int getFibonacciNumber(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, 1o1
        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 == 1) {
        // TODO Generalize the initial conditions?
        return 0;
    } else if (n == 1) {
        return 1;
    } else {
        // TODO Spend some thime 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(), 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 {
        // meeoowwwwwwwww
        // meooowwwwwwwwwwwwwwwwwwwwww
        return meow(KITTENS_OF_THE_WORLD - UNITE)
            + meow(KITTENS_OF_THE_WORLD - UNITED);
    }
}
@gymadarasz
Copy link

:D

@nidhindn
Copy link

nice one

@bmick
Copy link

bmick commented Mar 5, 2019

Does the Startup code even work? It doesn't have an initial condition for n = 0, and the condition for n = 1 is repeated. Or is that part of the joke?

@icguy
Copy link

icguy commented Apr 16, 2021

@bmick No, it's most likely a typo. AFAIK this picture is the (repost of the) original and it has the correct code.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment