1. 程式人生 > >366. Fibonacci【Naive】

366. Fibonacci【Naive】

ice pre panel example 2個 bsp str ram int

Find the Nth number in Fibonacci sequence.

A Fibonacci sequence is defined as follow:

  • The first two numbers are 0 and 1.
  • The i th number is the sum of i-1 th number and i-2 th number.

The first ten numbers in Fibonacci sequence is:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...

Notice

The Nth fibonacci number won‘t exceed the max value of signed 32-bit integer in the test cases.

Example

Given 1, return 0

Given 2, return 1

Given 10, return 34

題意

查找斐波納契數列中第 N 個數。

所謂的斐波納契數列是指:

  • 前2個數是 0 和 1 。
  • i 個數是第 i-1 個數和第i-2 個數的和。

解法一:

 1 class Solution {
 2 public:
 3     /*
 4      * @param n: an integer
 5      * @return: an ineger f(n)
 6      */
 7
int fibonacci(int n) { 8 int a, b; 9 a = 0; 10 b = 1; 11 12 for (int i = 1; i < n; i++) { 13 int c = a + b; 14 a = b; 15 b = c; 16 } 17 return a; 18 } 19 };

解法二:

 1 class Solution {
2 public: 3 /* 4 * @param n: an integer 5 * @return: an ineger f(n) 6 */ 7 int fibonacci(int n) { 8 if (n == 1) { 9 return 0; 10 } else if (n == 2) { 11 return 1; 12 } 13 14 return fibonacci(n - 1) + fibonacci(n - 2); 15 16 } 17 };

遞歸會超時

366. Fibonacci【Naive】