数据结构_3_fibnacci递归与非递归
来源:互联网 发布:java中域的概念 编辑:程序博客网 时间:2024/05/22 08:41
个人总结:1,代码总要动手写写,
2,由于老师上课要求我们会递归与非递归,所以fibnacci我都试试
之后会尝试二叉树递归与非递归两个方法
// Chapter3_fibnacci.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<stack>
using namespace std;
long fib(long n) {
if (n <= 1) return n;
else {
return fib(n - 1) + fib(n - 2);
}
}//递归
//********************************************************
struct Node {
long n;
int tag;
};
long fib2(long n) {
stack<Node> s;
Node* w=new Node();
long sum = 0;
do {
while (n > 1) {
w->n = n;
w->tag = 1;
s.push(*w);
n--;
}
sum = sum + n;
while (!s.empty()) {
w = &s.top();
s.pop();
if (w->tag == 1) {
w->tag = 2;
s.push(*w);
n = w->n - 2;
break;
}
}
} while (!s.empty());
return sum;
};//非递归1
//********************************************************
//画图递归理解
long fib3(int n) {
if (n <= 1) return n;//f(0)或f(1)的情况
long twoback = 0, oneback = 1, current;//n>=2的情况
for (int i = 2; i <= n; i++)
{
current = twoback + oneback;//计算f(n)=f(n-2)+f(n-1)
twoback = oneback;//计算f(n-1),下趟的f(n-2)
oneback = current;//计算f(n),下趟的f(n-1)
}
return current;
}
//********************************************************
int main() {
long ans1 = fib(10);
cout << "ans1:" << ans1 << endl;
cout << "***********************" << endl;
ans1 = fib2(10);
cout << "ans2:" << ans1 << endl;
cout << "***********************" << endl;
ans1 = fib3(10);
cout << "ans3:" << ans1 << endl;
return 0;
}
- 数据结构_3_fibnacci递归与非递归
- 递归与非递归
- 递归与非递归
- 递归与非递归
- 递归与非递归
- 递归与非递归
- 递归与非递归
- 【数据结构与算法】二叉树递归与非递归遍历
- 数据结构 汉诺塔 递归与非递归的实现
- [数据结构] 二叉树的递归与非递归遍历
- 【数据结构】二叉树的翻转递归与非递归实现
- 【数据结构】二叉搜索树的递归与非递归实现
- 【数据结构与算法】二分查找递归非递归实现
- 【数据结构】二叉树的遍历(递归与非递归)
- 【数据结构】递归与非递归法遍历二叉树
- 数据结构.非递归
- 递归与非递归转换
- 汉诺塔递归与非递归
- 02-线性结构1 两个有序链表序列的合并
- Centos 7.x Install
- cesium加载WFS服务(GeoServer发布)
- AlphaGo与柯洁对决:西医与中医之别
- 考研逻辑整理
- 数据结构_3_fibnacci递归与非递归
- 461. Hamming Distance
- 批处理动画
- 452. Minimum Number of Arrows to Burst Balloons
- QTP应用实例-G.8032测试自动化(1)测试分析
- Java程序操作Redis
- 读数据库论文-- 多核处理器下事务型数据库性能优化技术综述》
- code之路
- git pull 错误:refusing to merge unrelated histories