iOS面试:如何用递归的方式计算1-100的和

找工作笔试时有这样一道题,如何用递归的方式计算1-100的和?
刚看到这道题时有一点懵逼,因为之前一直是用下面这种方式来计算1-100的求和的。

/**
 普通求和计算
 */
- (NSInteger)sum:(NSInteger)n{
    NSInteger sum = 0;
    for (NSInteger i = 1; i <= n; i ++) {
        sum = sum + i;
    }
    return sum;
}

还好笔试的时候,没有看着,所以百度查了一下。

/**
 递归求和
 */
- (NSInteger)sum:(NSInteger)n{
    if (n == 1) {
        return 1;
    }else{
        return [self sum:(n-1)] + n;
    }
}

虽然是个小问题,但也记录一下吧,避免下次看到又懵逼。

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

推荐阅读更多精彩内容