Fibonacci 斐波那契数列第n个数的求解,也可以用递归和非递归的形式实现,具体如下,dart语言实现。
1 int fibonacci(int n) { 2 if (n <= 0) throw StateError('n cannot be <= 0!'); 3 return n > 2 ? fibonacci(n - 1) + fibonacci(n - 2) : 1; 4 } 5
6 int fibonacciNonrecursive(int n) { 7 if (n <= 0) throw StateError('n cannot be <= 0!'); 8 if (n < 3) return 1; 9 int a = 1, b = 1; 10 while (n-- > 2) { 11 b += a; 12 a = b - a; 13 } 14 return b; 15 }