斐波那契数列

小明特别喜欢吃糖,一开始小明没有糖,小红有一颗糖,小刚从超市买了一颗糖,小红把糖给了小明,小刚把糖给了小红,然后第二次去商店买了两颗糖,小刚买糖的数量一直是小明和小红手里糖之和,然后小明吃掉了小红送给自己的糖,小红把手里的糖全给了小明,小刚把手里的糖全给了小红,第三次去买了三颗糖….假如不考虑小明吃糖的极限和小刚购买糖的数量,问小刚第n次买糖需要买多少颗

此题考点很简单,废话不多说,上代码

//小刚买糖的次数
int numbers = 16;
NSArray *array = [self buySugar:numbers + 2];
NSLog(@"%@",[array lastObject]);


    //一开始小明的糖数和小红的糖数
    NSMutableArray *newSugars = @[@(0),@(1)].mutableCopy;
    
    if (sugars < 2) {//根据情况而已,最好写上判断

        return newSugars[sugars - 1];
    }

    for (int i = 2; i < sugars; ++i) {
        //小明手里的糖
        NSInteger sugar1 = [newSugars[i - 2] integerValue];
        //小红手里的糖
        NSInteger sugar2 = [newSugars[i - 1] integerValue];
        //小刚买的糖是小明手里和小红手里糖之和
        [newSugars addObject:@(sugar1 + sugar2)];
    }

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