最容易想到的做法当然是递归的方法,采用递归的时候只要控制好跳出递归的条件即可,但是当计算的数十分大时,递归调用会产生庞大的冗余计算,这是比较耗时的,改进方案见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); } }维护一个数组
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]; }新闻热点
疑难解答