查询斐波那契数列
version one
最容易想到的做法当然是递归的方法,采用递归的时候只要控制好跳出递归的条件即可,但是当计算的数十分大时,递归调用会产生庞大的冗余计算,这是比较耗时的,改进方案见version two、
int fibonacci(int n) {
// write your code here
if(n == 1)
{
return 0;
}
if( n == 2)
{
return 1;
}
else
{
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
version two
维护一个数组
int fibonacci(int n) {
// write your code here
int nums_out[100] = {0};
nums_out[0] = 0;
nums_out[1] = 1;
for(int i = 2; i < n; i++)
{
nums_out[i] = nums_out[i-1] + nums_out[i-2];
}
return nums_out[n-1];
}