递归--清橙 小结
来源:互联网 发布:sql单引号转义insert 编辑:程序博客网 时间:2024/06/10 17:52
包含题目:A.1044 A.1037
A.1044 Fibonacci数列
递归式:f[i]=f[i-1]+f[i-2]
递归基:f[1]=f[2]=1
【注:本题要求输出前n项和,而非第n项】
//递归版#include<cstdio>using namespace std;int sum = 0;int F(int n) { if (2 == n) return 1; else if (1 == n) return 1; else return F(n - 1) + F(n - 2);}int main() { int n; scanf("%d", &n); while (n != 0) { sum = 0; if (n == 1 || n == 2) sum = 1; else //这样累加好像有点笨,待优化 for (int i = 1; i <= n; i++) { sum += F(i); } printf("%d\n", sum); scanf("%d", &n); } return 0;}
//迭代版【借鉴自本题试题讨论区】#include"stdio.h"int main(){ int ans,f[4],i,n; while(1){ ans=0; f[0]=1; f[1]=1; scanf("%d",&n); if(!n) break; for(i=0;i<n;i++){//循环迭代 ans+=f[0]; f[2]=f[1]+f[0]; f[0]=f[1]; f[1]=f[2]; } printf("%d\n",ans); } return 0;}
A.1037.下楼问题
题意:每步可走1个台阶、2个台阶或者3个台阶,求方案数
#include<cstdio>using namespace std;int F(int n) { if (n < 0) return 0; else if (0 == n || 1 == n) return 1; else if (2 == n) return 2; else return F(n - 1) + F(n - 2) + F(n - 3);}int main() { int n; scanf("%d", &n); if(n >= 4 && n <= 20) printf("%d\n", F(n)); else printf("0\n"); return 0;}
0 0
- 递归--清橙 小结
- 递归小结
- 递归小结
- 递归小结
- 递归小结
- 递归的小结
- 递归算法小结
- 黑马程序员---递归小结
- 递归算法小结
- java递归算法小结
- 数据结构—递归小结
- C#递归批量清空TEXTBOX
- JAVA递归算法实例小结
- 递归与递推小结
- Python小结点&递归例子
- C语言递归方法小结
- JAVA递归算法实例小结
- 【C语言】递归练习题小结
- Oracle char 类型注意事项--导致sql查询查不到数据
- java串口通信
- 理解 HashMap 加载因子 loadFactor
- 收藏
- python Queue模块
- 递归--清橙 小结
- android注解使用详解(图文)
- ASP.NET实现从服务器下载文件问题处理
- NHibernate之旅(16):探索NHibernate中使用存储过程(中)
- 事件委托
- android最新依赖库
- 全局变量与局部变量重名
- Qt 系统托盘
- 斯坦福cs224d 语言模型,RNN,LSTM与GRU