递归求解1到100求和

递归求解1到100的和是一个常见面试题。

思想:

思考一下,从1加到100可以分解成:

  • 1+(2加到100的和)
  • 1+2+(3加到100的和)
  • 1+2+3+(4加到100的和)
  • ……

怎么样,这样是不是有点递归的味道了?递归的出口就是1。

所以,可以编写如下代码:

代码:

int count(int n)
{
	if (n > 1)
	{
		return n + count(n - 1);
	}
	else
	return 1;
}

这样,不仅可以求1到100的和,还可以求任意区间数字的和。只要改变递归出口和上限即可。