Add core::fibbonacci::fibbonacci()
This commit is contained in:
parent
3873e5561f
commit
b2ef8cc284
|
|
@ -0,0 +1,29 @@
|
||||||
|
pub fn fibbonacci(index: usize) -> usize {
|
||||||
|
if index == 0 {
|
||||||
|
0
|
||||||
|
} else if index < 3 {
|
||||||
|
1
|
||||||
|
} else {
|
||||||
|
let mut values = vec![1;index+1];
|
||||||
|
for i in 3..index+1 {
|
||||||
|
values[i] = values[i - 1] + values[i - 2];
|
||||||
|
}
|
||||||
|
values[index]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_first_few_values() {
|
||||||
|
let expected_values = vec![
|
||||||
|
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181,
|
||||||
|
6765, 10946,
|
||||||
|
];
|
||||||
|
for (i, &n) in expected_values.iter().enumerate() {
|
||||||
|
assert_eq!(fibbonacci(i), n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1 +1,3 @@
|
||||||
pub mod rope;
|
pub mod rope;
|
||||||
|
|
||||||
|
mod fibbonacci;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue