六种常见的代码类型

1234 查看

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);
    }
}

via willa.me