算法基础二 递推法
/*递推法*/ /*斐波那契数列 1 1 2 3 5 8 13..... f(n)?*/ /*递推法的特点是由前向后推算,因此注意起始条件,并在推算过程中保存结果供下一步推算使用~*/ #include<iostream> using namespace std; int f1(int n) { if (n < 3)return 1; else { int t1 = 1; int t2 = 1; for (int i = 2; i < n; i++) { int temp = t1 + t2; t2 = t1; t1 = temp; } return t1; } } //提供递归算法对比,相较而言递归法更简单,我们下次详细讨论~ int febonacci(int n) { if (n < 3)return 1; else return febonacci(n - 2) + febonacci(n - 1); } int main() { int n; cout << "请输入f(n)序列n" << endl; cin >> n; cout << "递推法:f(" << n << ")=" << f1(n)<<endl; cout << "递归法:f(" << n << ")=" << febonacci(n) << endl; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。