ACM--再说利用数组存储计算过程对程序效率带来的好处
2012-11-26 23:54
393 查看
题目背景:
![](http://img.my.csdn.net/uploads/201211/26/1353945340_5770.jpg)
解法一:
解法二:
通过这个简单的例子可以看出,利用数组存储计算过程的好处:
1:代码简洁
2:效率高,只要计算一次,则所有的计算结果都放在里面了,后面只需要到对应的位置去取数据即可。
3:逻辑简单、思路清晰
![](http://img.my.csdn.net/uploads/201211/26/1353945340_5770.jpg)
解法一:
#include<iostream> using namespace std; int main() { long long getStep(int, int); int n,a,b; cin>>n; while(n--) { cin>>a>>b; cout<<getStep(a,b)<<endl; } return 0; } long long getStep(int a, int b) { b = b - (a-1); //实际上相当于只有1个参数b,a到b换算成从1到t(t这里就是更新后的b,a就为1),步骤都一样 if(b == 2) { return 1; } if(b == 3) { return 2; } long long f1 = 1; long long f2 = 2; long long step; for(int i=3; i<b; i++) { step = f1 + f2; f1 = f2; f2 = step; } return step; }
解法二:
#include<iostream> using namespace std; int main() { int n,a,b; long long resultArray[52]; resultArray[0] = 0; resultArray[1] = 1; resultArray[2] = 2; for(int i=3; i<52; i++) { resultArray[i] = resultArray[i-1] + resultArray[i-2]; } cin>>n; while(n--) { cin>>a>>b; cout<<resultArray[b-a]<<endl; } return 0; }结果分析:
通过这个简单的例子可以看出,利用数组存储计算过程的好处:
1:代码简洁
2:效率高,只要计算一次,则所有的计算结果都放在里面了,后面只需要到对应的位置去取数据即可。
3:逻辑简单、思路清晰
相关文章推荐
- 利用mysql的存储过程比单独执行mysql的优势在哪里?好处有什么?
- 程序开发过程中Struts为您带来怎样的好处
- 编写一个程序,要求用户输入最多10个高尔夫成绩,并将其存储在一个数组中。 程序允许用户提早结束输入,并在一行上显示所有成绩,然后报告平均成绩。 请使用3个数组处理函数来分别进行输入、显示和计算
- 利用SQL存储过程生成程序编号的一种方法
- 利用SQL存储过程生成程序编号的一种方法
- 利用SQL存储过程生成程序编号的一种方法(转)
- 利用SQL存储过程生成程序编号的一种方法
- 利用SQL存储过程生成程序编号的一种方法
- 汇编语言三 设数组ARRAY存储多个8位无符号数据,其中第一个字用于存放数据个数,试编写程序求数组元素之和,将结果存放在AX中,若计算的和超过16位数表示的范围,则给出溢出标志DX=-1,否则D
- 利用分页存储过程开发分页程序
- Java调用存储过程返回数组
- C#调用oracle中带数组的存储过程
- Sql Server2005学习笔记(存储过程:分页小程序)
- 利用四元树来计算一个坐标点绕任意轴旋转后,新坐标点的推导过程
- 对返回数组的存储过程的处理
- 面向过程方法利用结构体写数组
- 数组 类型 在 存储过程中 使用
- 利用SQL未公开的存储过程实现分页
- 解决存储过程执行快,但程序调用则执行慢的问题
- [转]数据库存储过程中利用extproc调用共享程序库/动态链接库,间接可以实现调用操作系统命令 - 雪山之巅的阳光 - 博客园