| pub fn climb_stairs(n: i32) -> i32 { | |||||
| let mut v = Vec::<i32>::new(); | |||||
| v.push(0); | |||||
| v.push(1); | |||||
| v.push(2); | |||||
| let mut i = 3; | |||||
| while i <= n { | |||||
| v.push(v[((i - 2) as usize)] + v[((i - 1) as usize)]); | |||||
| i += 1; | |||||
| } | |||||
| return v[(n as usize)]; | |||||
| } | |||||
| pub fn main() { | |||||
| println!("Expected: 1836311903"); | |||||
| println!("Got: {}", climb_stairs(45)); | |||||
| } |
| You are climbing a stair case. It takes n steps to reach to the top. | |||||
| Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? | |||||
| Note: Given n will be a positive integer. | |||||
| Example 1: | |||||
| Input: 2 | |||||
| Output: 2 | |||||
| Explanation: There are two ways to climb to the top. | |||||
| 1. 1 step + 1 step | |||||
| 2. 2 steps | |||||
| Example 2: | |||||
| Input: 3 | |||||
| Output: 3 | |||||
| Explanation: There are three ways to climb to the top. | |||||
| 1. 1 step + 1 step + 1 step | |||||
| 2. 1 step + 2 steps | |||||
| 3. 2 steps + 1 step | |||||
| #!/bin/bash | |||||
| rustc main.rs | |||||
| ./main | |||||
| rm main |