斐波那契数列是一个经典的数列,其通项公式已被数学家们研究并得到了闭式解释,称为 Binet 公式。这个公式能够快速准确地计算任意位置的斐波那契数,避免了递归或迭代的复杂性。
以下是 Objective-C 中实现上述闭式公式的代码示例:
#import <Foundation/Foundation.h>
@interface FibonacciClosed : NSObject
+(CGFloat)fibonacciNthClosedForm:(NSInteger)n;
@end
@implementation FibonacciClosed
+(CGFloat)fibonacciNthClosedForm:(NSInteger)n {
const CGFloat phi = (1.0 + sqrt(5.0)) / 2.0;
const CGFloat oneMinusPhi = 1.0 - phi;
const CGFloat sqrt5 = sqrt(5.0);
CGFloat phiPower = pow(phi, n); CGFloat oneMinusPhiPower = pow(oneMinusPhi, n); CGFloat result = (phiPower - oneMinusPhiPower) / sqrt5; return result;
}