@@ -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 |