从迭代到递归——以简单累加为例
再咕下去,粉丝就掉光了(所以写一篇超级low的文章吧)
今天,写个简单的1加到n(n为正整数,且结果小于int的最大值)
先写一个while循环来实现吧
int accumulate(int n) {
int sum = 1;
int i = 2;
while(i <= n) {
sum += i;
i++;
}
return sum;
}
但是从小加到大while循环条件带参数,不如改成从大加到小
int accumulate(int n) {
int sum = 1;
while(n > 1) {
sum = n + sum;
n = n - 1;
}
return sum;
}
很显然,上面的循环结束条件是i==1,于是有了下面的代码(显然还不完整)
int accumulate(int n) {
if(n == 1) {
return 1;
}
}
接下来尝试再加上一些语句
int accumulate(int n) {
if(n == 1) {
return 1;
}
int sum = n + accumulate(n - 1);
return sum;
}