2 个版本

使用旧 Rust 2015

0.1.1 2017 年 10 月 26 日
0.1.0 2017 年 10 月 26 日

#fibonacci-sequence 中排名第 17

MPL-2.0 许可证

8KB
72

fibonacci

一个用 Rust 编写的斐波那契序列生成器。它适用于实现了 num::Zeronum::Onenum::CheckedAddClone 的类型。

没有要求类型必须是 num::Unsigned,但生成器永远不会生成负数。

生成器通过返回 None 来处理溢出,停止迭代器。例如,Fibonacci<u64> 在第九十二个元素后将溢出,因此迭代器将在生成第九十二个元素后结束。

以下均成立

assert_eq!(12, Fibonacci::<u8>::default().take(300).collect::<Vec<_>>().len());
assert_eq!(23, Fibonacci::<u16>::default().take(300).collect::<Vec<_>>().len());
assert_eq!(46, Fibonacci::<u32>::default().take(300).collect::<Vec<_>>().len());
assert_eq!(92, Fibonacci::<u64>::default().take(300).collect::<Vec<_>>().len());

请注意,u128 将不会工作,因为 num 库没有为其实现任何特性。


lib.rs:

生成斐波那契序列数字。

// Collect all of the Fibonacci numbers that fit inside a u8.
let some_numbers: Vec<u8> = Fibonacci::default().collect();
assert_eq!(some_numbers, vec![1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]);

依赖关系

~240KB