找工作笔试时有这样一道题,如何用递归的方式计算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;
}
}
虽然是个小问题,但也记录一下吧,避免下次看到又懵逼。