mirror of
https://github.com/LukasKalbertodt/programmieren-in-rust.git
synced 2025-06-29 08:17:32 +02:00
Add solution sheet7
This commit is contained in:
31
aufgaben/sheet7/sol1/fib.rs
Executable file
31
aufgaben/sheet7/sol1/fib.rs
Executable file
@ -0,0 +1,31 @@
|
||||
struct Fib {
|
||||
curr: u64,
|
||||
last: u64,
|
||||
}
|
||||
|
||||
impl Fib {
|
||||
fn new() -> Self {
|
||||
Fib {
|
||||
curr: 1,
|
||||
last: 0,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Iterator for Fib {
|
||||
type Item = u64;
|
||||
fn next(&mut self) -> Option<Self::Item> {
|
||||
let new = self.last + self.curr;
|
||||
self.last = self.curr;
|
||||
self.curr = new;
|
||||
|
||||
Some(self.last)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fn main() {
|
||||
for i in Fib::new().take(20) {
|
||||
println!("{}", i);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user