6 条题解
-
2
包AC
方法1
#include<bits/stdc++.h> using namespace std; int a,aa[1010]; int main(){ aa[0]=1; aa[1]=1; aa[2]=2; for(int i=3; i<20; i++){ aa[i]=(aa[i-1]+aa[i-2]+aa[i-3]); } while(cin >> a) { if(a==0) break; cout << aa[a] << endl; } return 0; }方法2
#include<bits/stdc++.h> using namespace std; int f(int n){ if(n==1)return 1; if(n==2)return 2; return f(n-1)+f(n-2); } int n,m; int main(){ while(cin >> n){ if(n==0) return 0; cout<<f(n) << "\n"; } return 0; } -
0
#include #include #include #include #include #include using namespace std; const int N=1e6+10; const int INF=0x3f3f3f3f; int n,k,a[N]; void f() { a[1]=1,a[2]=2; for(int i=3;i<=50;i++) a[i]=a[i-1]+a[i-2]; } int main(){ f(); while(cin>>k) { if(k==0) break; else cout<<a[k]<<endl; } return 0; }
-
0
看到TLE把我吓了一跳...... 于是
#include <iostream> #include <stack> #include <cmath> #include <vector> #include <string.h> #include <queue> #include <stdio.h> #include <iomanip> #include <cstdio> #include <algorithm> #define int long long using namespace std; const int N = 1e5 + 10; const int INF = 0x3f3f3f3f; int f(int n) { if(n == 0 || n == 1) { return 1; } else if(n == 2) return 2; else if(n == 3) return 3; else if(n == 4) return 5; else if(n == 5) return 8; return f(n - 1) + f(n - 2); } signed main() { int n; while(cin >> n && n != 0) { cout << f(n) << endl; } return 0; } -
-1
#include<set> #include<string> #include<cstring> #include<algorithm> using namespace std; const int N=1e6+10; const int INF=0x3f3f3f3f; int n,k,a[N]; void f() { a[1]=1,a[2]=2; for(int i=3;i<=50;i++) a[i]=a[i-1]+a[i-2]; } int main(){ f(); while(cin>>k) { if(k==0) break; else cout<<a[k]<<endl; } return 0; }
- 1
信息
- ID
- 1595
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 451
- 已通过
- 153
- 上传者