As we all know, the simplest algorithm to generate Fibonacci sequence is as follows:

```
if(n<=0) return 0;
else if(n==1) return 1;
f(n) = f(n-1) + f(n-2);

```

But this algorithm has some repetitive calculation. For example, if you calculate f(5), it will calculate f(4) and f(3). When you calculate f(4), it will again calculate both f(3) and f(2). Could someone give me a more time-efficient recursive algorithm?