适用情况:数组长度很大,结果需要中间量推导但不需要保存过程量,过程中仅用到前n项
优点:可以优化空间,减少内存占用(毕竟数组开得很小)
主要应用于递推与动态规划中
写法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22//斐波那契数列
int main(){
int i;
long long d[3];
d[1]=1;
d[2]=1;
for(i = 2;i<80;i++){
d[0] = d[1];
d[1] = d[2];
d[2] = d[0]+d[1];
}
//[0,1,1]
//[1,1,2]
//[1,2,3]
//[2,3,5]
//……
//由于求斐波那契数列第n项只需要求第n-1项与第n-2的和
//所以可以利用循环数组来压缩空间
//易知d[2]即为第i项的值
printf("%lld\n",d[2]);
return 0;
}