| @@ -0,0 +1,17 @@ | |||
| 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)); | |||
| } | |||
| @@ -0,0 +1,24 @@ | |||
| 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 | |||
| @@ -0,0 +1,5 @@ | |||
| #!/bin/bash | |||
| rustc main.rs | |||
| ./main | |||
| rm main | |||