I’m looking at a recursive problem where a child can hop a staircase of steps n in 1,2 or 3 steps at one time.
The code I’m looking at is a function similar to the likes of fibonacci. However, what I don’t get is if n==0 why does it return 1. If the total number of steps are 0, shouldn’t there be zero ways of climbing it ? Why is there one way to climb it ?
int f(int n)
{
if(n<0)
return 0;
else if(n==0)
return 1;
else
return f(n-1) + f(n-2) + f(n-3);
}
This is more of a logic question. Suppose you stand there and do nothing. How many steps did you climb? The answer is zero. So, did you successfully climb zero steps? Yes.
How many ways are there to climb zero stairs? Just one way: you have to stand there and not climb any steps.