> For the complete documentation index, see [llms.txt](https://maksimdan.gitbook.io/interview-practice-problems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://maksimdan.gitbook.io/interview-practice-problems/leetcode_sessions/70_climbing_stairs.md).

# 70 Climbing Stairs

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?

```
int climbStairs(int n) {
    if (n == 0 || n == 1) return 1;
    int a = 1, b = 1;
    for (int i = 2; i <= n; i++) {
        int tempB = b;
        b = a + b;
        a = tempB;
    }
    return b;
}
```
