关于递归的解释见《SICP》第1章。下面是个简单的递归编程题目。

题目:从1累加一直加到100的和是多少?

非递归的循环写法:

1}

递归的写法:

var testCase = {
sum:
0,
run:
function(n) {
if(n>=100) {
return 100;
}
else {
sum
= n+ testCase.run(n+1);
return sum;
}
}
};
console.log(testCase.run(
1));

上面这种代码在网上一搜就一大堆,下面的写法与它等价:

console.log((function(n){
	var sum=0;
	if(n<=1){
		return 1;
	}
	else{
		sum = arguments.callee(n-1)+n;
		return sum;
	}
})(100));

这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。

相关文章:

  • 2022-01-29
  • 2021-04-22
  • 2021-12-06
  • 2021-05-20
  • 2022-12-23
  • 2021-06-11
  • 2021-11-09
  • 2021-09-18
猜你喜欢
  • 2021-11-10
  • 2021-12-30
  • 2022-12-23
  • 2021-11-17
  • 2021-11-05
相关资源
相似解决方案