递归实现1到100的加法
听说有朋友面试不顺利,其中有一题目是递归实现1到100加法,回答得不好;
结果肯定GG了。。。
一、代码实现
package main
import "fmt"
func recursion(min, max int)int{
if max <= min {
return min
}
sum := max
return sum + recursion(min, max-1)
}
func main(){
fmt.Println("1+...+100 = ", recursion(1, 100))
}
# include <stdio.h>
int recursion(int min, int max){
if(max <= min) return min;
int sum = max;
return sum + recursion(min, max-1);
}
int main(){
printf("1+...+100 = %d\n", recursion(1, 100));
return 0;
}
二、总结
一时写不出来的原因肯定是忘记递归的三个条件了,还是要记住条件,再结合例子,才比较好理解;
- 一个问题的解可以分解为几个子问题的解
- 这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样
- 存在递归终止条件
——2020-04-01——