Currently, the answer to this question is f(n)=f(n-1)+f(n-2); It is kind like this

```
1-1
2-2
3-3
4-5
5-8
6-13
```

But I just do not feel it right. For example, for 6 steps there are only 12 different ways not 13:

```
0x 2:
111111
1x2:
21111
12111
11211
11121
11112
2*2:
2211
2121
2112
1212
1122
3*2:
222
```

Do I miss anything or it is truly 12?

Anyway, based on the math I have, the code should be as following:

```
public class Solution {
public int climbStairs(int n) {
if(n==1||n==2)
return n;
else{
int m=n/2;
int result=1;
for(int i=1;i<=m;i++){
result+=(n-2*i)*i+1;
}
return result;
}
}
}
```