1
Fork 0

bench: Update shootout-fibo for performance

This commit is contained in:
Brian Anderson 2012-01-14 19:00:59 -08:00
parent bc77d7bdb0
commit 492dba8bfe

View file

@ -1,19 +1,20 @@
use std;
// -*- rust -*-
fn fib(n: int) -> int { fn fib(n: int) -> int {
if n < 2 {
ret 1;
// Several of the posted 'benchmark' versions of this compute the } else {
// wrong Fibonacci numbers, of course. ret fib(n - 1) + fib(n - 2);
if n == 0 { }
ret 0;
} else { if n <= 2 { ret 1; } else { ret fib(n - 1) + fib(n - 2); } }
} }
fn main() { fn main(args: [str]) {
assert (fib(8) == 21); // FIXME: #1527
assert (fib(15) == 610); sys::set_min_stack(1000000u);
log(debug, fib(8)); let n = if vec::len(args) == 2u {
log(debug, fib(15)); int::from_str(args[1])
} else {
40
};
std::io::println(#fmt("%d\n", fib(n)));
} }