//性能差 时间复杂度:2的n次方
- (NSUInteger)fibonacci1:(NSUInteger)number {
if (number <= 1) {
return number;
}
return [self fibonacci1:number - 1] + + [self fibonacci1:number - 2];
}
//性能好 时间复杂度:n
- (NSUInteger)fibonacci2:(NSUInteger)number {
if (number <= 2) {
return number;
}
/*
1 2 3 4 5 6 7 (这是顺序)
1 1 2 3 5 8 13
*/
NSUInteger first = 1
NSUInteger second = 1;
for (NSUInteger index = 0 ; index <= number-2; index++) {
second += first; //新的second等于之前的first+之前的second
first = second - first; //新的first指向之前的second
}
return second;
}