Posted in Javascript onMay 18, 2010
题目:从1累加一直加到100的和是多少?
非递归的循环写法:
1run: function() { 2 var sum = 0; 3 for(var i=1;i<=100;i++) { 4 sum = sum + i; 5 } 6 console.log(sum); 7}
递归的写法:
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));
这样的写法便于学习。以上是线性递归,作为递归入门的话还行,算法的性能效率就烂了些,不作考虑。
JavaScript 语言的递归编程
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@