Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. #![feature(type_ascription)]
  2.  
  3. #[no_mangle]
  4. pub extern fn fib(n: i32) -> f64 {
  5. let inverse_five_sqrt:f64 = 1.0/(5.0:f64).sqrt();
  6. let first_term = (1.0+(5.0:f64).sqrt()) / 2.0;
  7. let second_term = (1.0-(5.0:f64).sqrt()) / 2.0;
  8. (inverse_five_sqrt * first_term.powi(n) - inverse_five_sqrt * second_term.powi(n)).round()
  9. }
  10.  
  11. fn main() {
  12. println!("fib 1: {}", fib(1));
  13. println!("fib 2: {}", fib(2));
  14. println!("fib 3: {}", fib(3));
  15. println!("fib 4: {}", fib(4));
  16. println!("fib 5: {}", fib(5));
  17. println!("fib 100: {}", fib(100));
  18. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement