y*3
2 楼
没有人知道吗?。。。跪求!
j*6
5 楼
尾递归实现和语言没关系吧?(理解不对的话求大牛指正) 不过一般情况下递归都不
是尾递归
所以就用循环之类的写吧~
是尾递归
所以就用循环之类的写吧~
A*g
6 楼
有关系,尾递归是指每个function call的最后一步是call这个function自己,所以前
面stack的内容和后面计算没关系,就可以不存前面stack里的内容了,LISP的解析器或
编译器会做这样的优化
(define (sum start end)
(if (= start end) start
(+ start (sum (+ start 1) end))))
同样的写法,Java或C++一般还是会存整个stack,然后一层层返回
int sum(int start, int end) {
if (start==end)
return start;
else
return start+sum(start+1, end);
}
Java/C++ 如果用loop的话,就不用stack了
int sum(int start, int end) {
int sum = 0;
for (int i=start; i<=end; i++)
sum+=i;
return sum
}
【在 j*********6 的大作中提到】![](/moin_static193/solenoid/img/up.png)
: 尾递归实现和语言没关系吧?(理解不对的话求大牛指正) 不过一般情况下递归都不
: 是尾递归
: 所以就用循环之类的写吧~
面stack的内容和后面计算没关系,就可以不存前面stack里的内容了,LISP的解析器或
编译器会做这样的优化
(define (sum start end)
(if (= start end) start
(+ start (sum (+ start 1) end))))
同样的写法,Java或C++一般还是会存整个stack,然后一层层返回
int sum(int start, int end) {
if (start==end)
return start;
else
return start+sum(start+1, end);
}
Java/C++ 如果用loop的话,就不用stack了
int sum(int start, int end) {
int sum = 0;
for (int i=start; i<=end; i++)
sum+=i;
return sum
}
【在 j*********6 的大作中提到】
![](/moin_static193/solenoid/img/up.png)
: 尾递归实现和语言没关系吧?(理解不对的话求大牛指正) 不过一般情况下递归都不
: 是尾递归
: 所以就用循环之类的写吧~
相关阅读
离家38 mile的工作,大家会考虑吗?培养女码工的年龄底线是多少?要放Roth吗? (转载)cover letter有多大的作用?cybercoders recruiting !!!分享一点面试经历产品经理/product manager职位以及面试个人体会二公司不肯给我unpaid继续保留,我该如何办?可以申请SDI么?大家OPT I-20都花多少天拿到?fail了dream company的onsite怎么延迟linkedin potential的面试?downtown上班的车停哪?失败的电面那个T和RF的帖子怎么不见了?昨天去google吃饭发个题目看谁会做Recruiting Specialist和公司的HR的人有啥区别?Job Opening: Senior Java Programmer一道老题为何ICC这么烂,有些还给办绿卡?