use quercus::*;
fn main() {
let mut tree = Tree::new().style(PipeStyle::Curvy).indent(1);
fibonacci_tree(5, &mut tree);
tree.prune_and_print();
}
fn fibonacci_tree(n: u32, tree: &mut Tree) {
tree.node(&format!("{}", fibonacci(n)));
match n {
0 | 1 => {}
_ => {
tree.begin_branches();
fibonacci_tree(n - 1, tree);
fibonacci_tree(n - 2, tree);
tree.end_branches();
}
}
}
fn fibonacci(n: u32) -> u32 {
match n {
0 | 1 => n,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}