解题思路:
直接开数组的求法太浪费空间了,计算一次之后就不管了真的不是咱们节约的风格
所以利用滚动数组压缩空间,空间复杂度可以O(N)压缩到O(1)级别,时间复杂度不变依旧是O(N)线性级别
参考代码:
#include<bits/stdc++.h> #define hh ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define MOD 10007 using namespace std; int main(){ hh; int fib[3]={0,1,1},n; cin>>n; for(int i=2;i<n;i++){ fib[0]=fib[1],fib[1]=fib[2]; fib[2]=(fib[0]+fib[1])%MOD; } cout<<fib[2]%MOD<<endl; return 0; }
0.0分
3 人评分
简单的a+b (C语言代码)浏览:547 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:755 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:567 |
众数问题 (C语言代码)浏览:821 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:660 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:626 |
C语言考试练习题_保留字母 (C语言代码)浏览:700 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:534 |
1052题解(链表操作)浏览:651 |