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;
    }
}

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

你可能感兴趣的:(iOS面试:如何用递归的方式计算1-100的和)