iOS 实现判断一个数组是不是斐波那契数

- (void)viewDidLoad {
    [super viewDidLoad];
    NSArray *arr = @[@"8", @"2", @"4", @"6"];
    NSLog(@"======%d",[self isPeiBoWithArray:arr]);
   }

- (BOOL)isPeiBoWithArray:(NSArray *)arr {
    
    BOOL nm = YES;
    
    for (int i = 0; i < arr.count - 2; i++) {
        
        if ([arr[i] integerValue] + [arr[i + 1] integerValue] != [arr[i + 2] integerValue]) {
            
            nm = NO;
            break;
            
        }
        if (i == arr.count || [arr[i] integerValue] + [arr[i + 1] integerValue] == [arr[i + 2] integerValue]) {
            
            nm = YES;
           
        }
        
    }

    BOOL isP = NO;
    for (int i = 0; i < arr.count; i++ ) {
        
        isP = [self ispeiboWith:[arr[i] intValue]];
        
        NSLog(@"数子是不是%d", isP);
        if (isP == NO) {
            
            break;
        }
    }

    if (nm && isP) {
        
        return YES;
        
    }else {
        
        return NO;
    }
    
}

- (BOOL)ispeiboWith:(int)t {
    
    int i = 0;
    BOOL nm = YES;
    
    for (i = 1; [self fib:i] <= t; i++) {
        
        if ([self fib:i] == t) {
            nm = YES;
        }else {
            nm = NO;
        }
    }

    return nm;
}

- (int)fib:(int)n {
    
    if (n == 1 || n == 2) {
        return 1;
    }else {
        return [self fib:n - 1] + [self fib:n - 2];
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工程车基本上已经把路消灭掉了!然后到了盐碱地那边了。 图为 吴博士在现场指导 ...
    忘忧农场申宝丰阅读 459评论 0 0
  • js特效 - Day3 一、client家族 1.1 clientWidth和clientHeight 网页可见区...
    Jackson_yee_阅读 423评论 0 1
  • 儿子出题目,说让写写《两棵树》中,两棵被墙分开的树,等到最后再相见时,彼此会说些什么。) 现在左侧的大树叫绿梦,右...
    晨光微晓阅读 387评论 7 4
  • 听到关于你的消息 沉默着 尽量表现的自然 然而偶然蹦出的一个字眼 都能顿在心里 久久化不开
    挑骨头呢阅读 210评论 1 1