刷力扣的时候,我刷到爬楼梯的简单题,虽然是简单题,但是我了解到滚动数组,因为我也是小白嘛,就去学习了一下这个思想,主要是用到有规律的局部新的信息和反馈。也是为了节省空间。
例子:求第n个位置的斐波那契数
虽然可以用递归,但是浪费了大量的程序空间和时间,不如滚动算法
#include <stdio.h>
int main(int argc, const char *argv[])
{
int num;
int p1 = 1;
int p2 = 1;
int i = 0;
int ans;
while(1){
p1 = 1;
p2 = 1;
printf("input your num:\n");
scanf("%d",&num);
if(num <= 2){
printf("num : %d\n",p1);
continue;
}
for(i = 3;i <= num; i++){
ans = p1 + p2;
p1 = p2;
p2 = ans;
}
printf("第%d的数是 : %d\n",num,ans);
}
return 0;
}