C++ 学习笔记_0016_递归(斐波那契数列、进制转换、最大公约数、汉诺塔)
来源:互联网 发布:it监控软件排名 编辑:程序博客网 时间:2024/05/01 22:08
【项目1-Fibnacci序列】
输出Fibnacci序列的第20个数。要求提交两个程序,fib(int n)的实现分别用迭代方法与递归方法实现。
汉诺塔
输出Fibnacci序列的第20个数。要求提交两个程序,fib(int n)的实现分别用迭代方法与递归方法实现。
提示:如实现困难,先从讲义看求阶乘的迭代方法与递归方法实现,深入体会后再进行设计。
#include<iostream>using namespace std;int fib(int);int main(){ cout << fib(20) << endl; return 0;}//迭代法/*int fib(int n){ int f, f1, f2, i; if (n == 1) return 0; else if (n == 2) return 1; else { f1 = 0; f2 = 1; for (i = 3; i <= n; i++) { f = f1 + f2; f1 = f2; f2 = f; } } return f2;}*///递归法int fib(int n){ if (n == 1) return 0; else if (n == 2) return 1; else return (fib(n-1) + fib(n-2));}
进制转换
#include<iostream>using namespace std;void dec2bin(int);int main(){ int n; cout << "请输入一个大于0的整数:"; cin >> n; cout << endl << n << "对应的二进制数为:"; dec2bin(n); cout << endl; return 0;}void dec2bin(int n){ if (n == 0) return; else { dec2bin(n/2); cout << n%2; return; }}
最大公约数
#include<iostream>using namespace std;int gcd(int, int);int main(){ int m, n; cout << "输入两个整数:"; cin >> m >> n; cout << "最大公约数:"; cout << gcd(m, n) << endl; return 0;}//迭代法/*int gcd(int a, int b){ int t, r; if (a < b) t = a, a = b, b = t; while (b != 0) { r = a % b; a = b; b = r; } return a;}*///递归法int gcd(int a, int b){ int t, g; if (b == 0) g = a; else g = gcd(b, a%b); return g;}
汉诺塔
#include<iostream>using namespace std;const int dissCount = 3;long move(int, char, char, char);int main(){ long count; count = move(dissCount, 'A', 'B', 'C'); cout << dissCount << "个盘子需要移动" << count << "次。" << endl; return 0;}long move(int n, char A, char B, char C){ long c1, c2; if (n == 1) { cout << A << " ---> " << C << endl; return 1; } else { c1 = move(n-1, A, C, B); cout << A << " ---> " << C << endl; c2 = move(n-1, B, A, C); return c1 + c2 + 1; }}
0 0
- C++ 学习笔记_0016_递归(斐波那契数列、进制转换、最大公约数、汉诺塔)
- Python学习笔记 递归-斐波那契数列,汉诺塔
- 【C】斐波那契数列(非递归)
- 【C】斐波那契数列(递归算法)
- 斐波那契数列(递归)
- 递归(斐波那契数列)
- 递归(斐波那契数列、汉诺塔)
- 斐波那契数列-数组和递归-C语言
- C语言递归方法实现斐波那契数列
- 【好好学习】js递归学习-斐波那契数列
- 透过斐波那契数列学习函数递归
- C语言使用非递归和递归函数分别实现阶乘,斐波那契,最大公约数
- 数据结构(C#)--斐波那契数列的递归实现方法
- 数据结构(C#)--递归和动态规划法实现斐波那契数列的方法
- C语言不用递归(使用栈)实现斐波那契数列练习
- 小朋友学C语言(16):斐波那契数列的非递归实现
- 小朋友学C语言(17):斐波那契数列的递归实现
- 斐波那契数列的递归和迭代(数据结构笔记)
- 音乐播放器的潮流
- 各行业程序员年薪分析
- 1-4 正弦和余弦
- 互联网如何实现思维开阔
- angularjs中$http模块POST请求request payload转form data
- C++ 学习笔记_0016_递归(斐波那契数列、进制转换、最大公约数、汉诺塔)
- 男人婚后为何会对婚姻心生倦意?
- OData协议详解,restfull对OData的GET/PUT/POST/DELET
- 3.1、Eclipse
- Java中==和equals的比较
- 1-5 打折
- android 布局
- android linux 基础知识总结
- 各种windows系统安装文件下载