算法练习——”递推之斐波那契“
来源:互联网 发布:国内域名后缀 编辑:程序博客网 时间:2024/05/21 14:45
*此次算法练习主要使用了递推的思想,递推算法是不断利用已有的信息推出新的东西的一种思想,一般递推算法有俩种:
1.顺推法:从已知条件出发,逐步推算出要解决问题的方法。
2.逆推法:从已知的结果出发,用迭代表达式逐步推算出问题的条件。*
斐波那契数列
- 问题描述:
一般而言,兔子在出生俩个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁衍多少只兔子? 问题分析:
第一个月:有一对兔子(1对)
第二个月:兔子成熟后生下一对兔子(2对)
第三个月:第一对又生下一对兔子(3对)
第四个月:……
我们可以用形如“【兔子数】(【生育能力标记{0,0.5,1}】)”的方式进行表示,每一组表示间用‘;’隔开,且每一组表示一个月:
0代表不能生育;
0.5代表差一个月可以生育;
1代表可以生育。
1(0.5);2(1,0);3(1,0.5,0);5(1,1,0.5,0,0);8(1,1,1,0.5,0.5,0,0,0)……
我们采用顺序递推的方法根据已知的条件推断出如下规律:
兔子从第三个月开始,后一个的数量是前俩个月数量的和。代码实现
// 2017_8_2_Fei.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"/***一般而言,兔子在出生俩个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。*如果所有兔子都不死,那么一年以后可以繁衍多少只兔子?**经过分析,我们发现兔子增长的规律是从第三个月开始的*/int _tmain(int argc, _TCHAR* argv[]){ int num=0;//记录兔子的总数,初始有俩只 int begin = 1;//开始有一对兔子 int end = 2;//记录一个月后的兔子数 //循环一年月数 for(int month=1;month<13;month++){ if(month<3) { printf("第%d个月的兔子数为%d:\n",month,month); }else{ num=begin+end; begin=end; end=num; printf("第%d个月的兔子数为%d:\n",month,num); } } return 0;}
阅读全文
1 0
- 算法练习——”递推之斐波那契“
- 斐波那契 递推算法
- 递推递归练习 K 加强斐波那契
- 递推递归练习--K(加强斐波那契)
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- Vue.js数据状态管理-Vuex(-)
- Android EditText监听小数点让用户只能输入小数点后两位
- Nginx+Tomcat搭建高性能负载均衡集群
- llvm+clang编译安装
- 自定义水平滑动的listview
- 算法练习——”递推之斐波那契“
- 使用版本控制管理工具git来管理项目
- Floyd 算法求多源最短路径-打印最短路径
- eclipse for c/c++安装与第一个程序
- js识别微信支付宝浏览器(移动端)
- Android Studio NDK开发注意
- 轻松获万元额度,原来提额也可以这么简单!
- DescriptionResourcePathLocationType Access restriction: The method getCallerClass(int) from
- spring事物的七种事物传播属性行为及五种隔离级别