在一行中调用3个递归
Calling 3 recursions in one line?
我是C++编程的新手,不久前我开始学习递归函数。所以我的问题是,这能用递归完成吗?
u(n)=n*u(n-1)+(n+1)*u(n-2)+n
是的,这是可以做到的,但这将具有指数复杂性。一个更好的方法是自下而上地计算,并在继续时缓存u的较低值。
是的,前提是您正确处理了基本情况。目前的函数还没有完全定义:您需要显式地声明u(0)
和u(1)
的值(或者其他任何基本情况)。
请注意,函数调用自己两次(使用n-1
和n-2
),而不是像问题标题所示的那样调用三次。
此外,在这种特殊情况下,递归是不必要的,而且是次优的:您可以简单地使用两个变量来保持两个最近的数字,然后迭代进行。有关不同方法的讨论,请参阅ICS 161:算法的设计和分析:斐波那契数;那里的函数形式不同,但所有的讨论都适用于你的函数。
相关文章:
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 等待整个 omp 块完成,然后再调用第二个函数
- 调用多个类而不带 if 语句
- 如何在构造器的成员初始值设定项列表中调用两个函数?
- C++使用函数对象的线程,如何调用多个析构函数而不是构造函数?
- 在派生类中调用多个虚函数
- 如何在C 中的单个构造函数中调用多个构造函数
- 使用 pylab 调用多个文件
- 为什么我要尝试在一个if语句中调用两个fucntions,但是在第一个完成后它忽略了另一个功能?(C )
- C++错误,隐 <function-style-cast> 式要求使用模板化类一次调用多个构造函数的多个转换
- 调用多个选定函数并节省 RAM 的最佳方式
- 如果要调用多个成员函数,对象编辑器是否是一种好方法?
- 如何设置和调用多个类的私有数据成员
- 调用两个功能(一个stdcall)的方法
- Python C,TBB,调用多个线程的函数
- 如何将 GMock EXPECT_CALL设置为为模拟函数调用两个不同的函数
- 如何在程序中调用 2 个或多个 shellexecute 函数
- C#到C代码P/调用多个std:字符串声明导致堆栈损坏
- 如何依次多次调用3个线程
- 必须调用第一个设计模式