10 solutions
-
4
#include <bits/stdc++.h> using namespace std; int fibonacci(int k){ if (k == 1 || k == 2){ return 1; }else{ return fibonacci(k - 1) + fibonacci(k - 2); } } int main(int argc, char **argv){ int k,f[50] = {1,1}; cin >> k; for (int i = 2;i < k;i++){ f[i] = f[i - 1] + f[i - 2]; } cout << f[k - 1]; return 0; }
-
2
两种方法: ①,常规方法
#include<iostream> #include<iomanip> using namespace std; int a1=1,a2=1,k; int main(){ cin>>k; if(k==1||k==2) cout<<1; else{ int sum; for(int i=0;i<k-2;i++){ sum=(a1+a2); a1=a2; a2=sum; } cout<<a2<<"\n"; } return 0; }
②,这个TLE了一个点
#include<bits/stdc++.h> #define ll long long using namespace std; int k; ll f(int k){ if(k==1||k==2) return 1; return f(k-1)+f(k-2); } int main(){ cin>>k; ll s=f(k); cout<<s<<"\n"; return 0; }
-
-1
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include <fenv.h> #include #include #include #include <math.h> #include #include #include #include #include #include #include #include #include #include #include #include #include <stdio.h> #include #include <stdint.h> #include <string.h> #include <tgmath.h> #include <complex.h> #include #include #include <stdbool.h> #include #include #include #include <inttypes.h> #include <bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int s[114514]; s[1]=s[2]=1; for(int i=3;i<=n;i++){ s[i]=s[i-1]+s[i-2]; } cout<<s[n]<<endl; }
- 1
Information
- ID
- 560
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 5
- Tags
- # Submissions
- 250
- Accepted
- 97
- Uploaded By