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 |