Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![feature(type_ascription)]
- #[no_mangle]
- pub extern fn fib(n: i32) -> f64 {
- let inverse_five_sqrt:f64 = 1.0/(5.0:f64).sqrt();
- let first_term = (1.0+(5.0:f64).sqrt()) / 2.0;
- let second_term = (1.0-(5.0:f64).sqrt()) / 2.0;
- (inverse_five_sqrt * first_term.powi(n) - inverse_five_sqrt * second_term.powi(n)).round()
- }
- fn main() {
- println!("fib 1: {}", fib(1));
- println!("fib 2: {}", fib(2));
- println!("fib 3: {}", fib(3));
- println!("fib 4: {}", fib(4));
- println!("fib 5: {}", fib(5));
- println!("fib 100: {}", fib(100));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement