#include <iostream>using namespace std;int recursion(int x){ if(x == 0) return 0; return (x + recursion(x-1)); //recursive function call should always be in the return statement?}int main(){ cout<<"SUM:"<<recursion(9);}
是否存在递归函数调用不在return语句中的任何其他方式
解决方法 没有语言规则说递归调用必须作为return语句的一部分出现.它可以出现在方法的任何地方(甚至可能出现在几个地方).例如:
int recursion(int x){ if (x == 0) return 0; int rec = recursion(x-1); return x + rec;}
也就是说,在函数的最末端进行递归调用有其好处:这称为“尾递归”,一个好的编译器可能能够优化尾递归.
最后,值得一提的是,在您的特定示例中(将数字从0到n相加),递归完全没必要.
总结以上是内存溢出为你收集整理的c – 递归算法全部内容,希望文章能够帮你解决c – 递归算法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)