use std::collections::HashMap; fn read_line()->String{ let mut buf = String::new(); let x = std::io::stdin().read_line(&mut buf).ok(); buf } fn fibo(n:i64, map:&mut HashMap)->i64 { let mut r:i64 = 0; match map.get(&n) { Some(&number) => { r = number; }, _ => { let num = fibo(n-1, map) + fibo(n-2, map); map.insert(n, num); r = num; }, } r } fn main() { let mut map:HashMap = HashMap::new(); let n = read_line().trim().parse::().unwrap(); map.insert(1, 1); map.insert(2,1); let num = fibo(n+1, &mut map); println!("{}", num); }