您的位置:首页 > 其它

ACM--再说利用数组存储计算过程对程序效率带来的好处

2012-11-26 23:54 393 查看
题目背景:





解法一:
#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:逻辑简单、思路清晰
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐