1 条题解
-
124陈泓凯 (12134陈泓凯) LV 10 @ 2024-03-12 20:24:40
这道题不难,不过数据范围一般大,题意就是求 \(fib_{n-1}\),\(n<1000\)。
经典fib,但要高精度,不然会爆longlong(我感觉这数据范围还是太小了,毕竟答案如果是mod时间复杂度也就 \(n log_2 n\))。
#include<bits/stdc++.h> using namespace std; int a[1001],b[1001],k[1001]; int main() { a[1000]=b[1000]=1; long long n,f=1; cin>>n; for(int i=1;i<n;i++) { for(int j=1;j<=1000;j++)k[j]=a[j]; for(int j=1;j<=1000;j++)a[j]+=b[j]; for(int j=1;j<=1000;j++)b[j]=k[j]; for(int m=1000;m>=0;m--) if(a[m]>=10) { a[m-1]+=a[m]/10; a[m]%=10; } } for(int i=1;i<=1000;i++) { if(f==1&&a[i]!=0)f=0; if(f==0)cout<<a[i]; } return 0; }//这边是陈年代码
- 1
信息
- ID
- 1233
- 难度
- 8
- 分类
- (无)
- 标签
- 递交数
- 35
- 已通过
- 5
- 通过率
- 14%
- 上传者