2 个版本
使用旧 Rust 2015
0.1.1 | 2017 年 10 月 26 日 |
---|---|
0.1.0 | 2017 年 10 月 26 日 |
在 #fibonacci-sequence 中排名第 17
8KB
72 行
fibonacci
一个用 Rust 编写的斐波那契序列生成器。它适用于实现了 num::Zero
、num::One
、num::CheckedAdd
和 Clone
的类型。
没有要求类型必须是 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